私はソーラーを作るために太陽の下ですべてを試しました(まあまあそれはsolrと呼ばれています)。大文字小文字を区別しませんが、大文字小文字を区別し続けます。SOLR 6.4.1 Suggesterは大文字と小文字を区別し、大文字と小文字を区別しません。
これはメキシコの提案を返します。さらに、私は成功したドキュメントを返された、私の提案フィールドに対する下ケース/選択検索をしようとした診断するに
http://localhost:8983/solr/mycollection/autocomplete?suggest.q=mex
:
http://localhost:8983/solr/mycollection/autocomplete?suggest.q=Mex
これは、0の結果を返します。 "メキシカン"を含む:
http://localhost:8983/solr/mycollection/select?q=suggestions:mex*
しかし、このような幸運のusi Suggesterと小文字を区別する。それは私の<filter class="solr.LowerCaseFilterFactory"/>
がSuggesterで使用されても効果がないようです。当然の
私は完全な設定のアップロード、コレクションリロード、データの再インデックス、および提案者は、試験前に再構築しました。私はSOLR 6.4.1でクラウドモードで動作しています。何か案は?診断のヒント?
のschema.xml
<fieldType name="textSuggest" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="recipe" type="text_general" indexed="true" stored="true" multiValued="false" />
<field name="suggestions" type="textSuggest" indexed="true" stored="true" multiValued="true" />
<copyField source="recipe" dest="suggestions"/>
solrconfig.xml
<searchComponent class="solr.SuggestComponent" name="suggest">
<lst name="suggester">
<str name="name">foodsuggester</str>
<str name="lookupImpl">WFSTLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">suggestions</str>
<str name="buildOnStartup">false</str>
<str name="buildOnCommit">false</str>
<str name="storeDir">suggester_wfst_dir</str>
<str name="suggestAnalyzerFieldType">textSuggest</str>
</lst>
</searchComponent>
<requestHandler name="/autocomplete" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.dictionary">foodsuggester</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
あなたは正しいです! FuzzyLookupFactoryは本当にトリックです!唯一のことは、私はあいまいな結果を望んでいない、私は正確な大文字と小文字を区別しない提案が欲しいだけです。これは大きな進歩ですが、ありがとうございます。 – Magnus
OKを追加することによってのみ、正確な大文字と小文字を区別しないマッチを返すファジー工場を持って最初の40の文字が(ケースを無視)正確に一致しなければならないことを意味し40。それは完全に動作し、私の場合のように短い正確な一致を可能にします。 –
Magnus
あなたは回避策を見つけました –