我在使用 Solr 的建议组件时遇到问题,我想使用的实现类是 AnalyzingInfixLookupFactory,我正在使用它来获取基于中缀的建议,而不仅仅是前缀。我还需要 Solr 将搜索词视为一个标记。但问题是 Solr 总是根据前缀而不是中缀返回建议。
我在 solrconfig.xml 中的 Suggest 组件:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str> <!-- org.apache.solr.spelling.suggest.fst -->
<str name="dictionaryImpl">DocumentDictionaryFactory</str> <!-- org.apache.solr.spelling.suggest.HighFrequencyDictionaryFactory -->
<str name="field">movie_name</str>
<str name="weightField">movie_meter</str>
<str name="buildOnCommit">true</str>
<str name="suggestAnalyzerFieldType">text_general</str>
</lst>
schema.xml 中的 text_general:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>