我正在使用Solr 4.6而我正在尝试让solr根据多个单词给我自动完成建议。我使用spellcheck.collate实现了这一点,但我现在面临的问题是它返回与搜索无关的建议(搜索基于汽车)
Example: Searching for something like "audi fo" will return audi + all the matching
items that have "fo" in them, something like audi ford, audi focus and so on.
每个文档都有多个字段(品牌,型号,身体颜色等)。我想要实现的是让solr仅返回匹配文档中基于第一个单词匹配字段的第二个单词的建议。
我想我可以使用Solr库在Java中编写自定义组件并插入它,但我猜测必须有一种更简单的方法来实现这一点,使用Solr已经知道的。
注意:我已经研究了几天的Solr文档,这是迄今为止我能找到的最好的。
solr.config
<searchComponent name="com_test" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">com_test</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookup</str>
<str name="field">com_test</str>
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/com_test">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">com_test</str>
<str name="spellcheck.count">10</str>
<str name="spellcheck.collate">true</str>
</lst>
<arr name="components">
<str>com_test</str>
</arr>
</requestHandler>
schema.xml中
<field name="com_test" type="com_test" indexed="true" stored="false" multiValued="true"/>
<fieldType name="com_test" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
答案 0 :(得分:0)