【发布时间】:2015-06-14 01:31:33
【问题描述】:
我使用 solr 5.0.0 并希望创建一个自动完成功能,以根据我的文档的 word-gram(或 shingles)生成建议。 问题是,作为建议查询的回报,我只能得到搜索字段的完整“条款”,可能会非常长。
当前问题:
输入:“所以” 建议: “……超长文本所以n长文本继续……”
"......下一个长文本solar next text continue......"
目标:
输入:“所以”
关于带状疱疹的建议:
“所以n”
“所以拉尔”
“所以拉尔测试”
等
<searchComponent name="suggest" class="solr.SuggestComponent"
enable="${solr.suggester.enabled:true}" >
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">title_and_description_suggest</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">autocomplete</str>
<str name="queryAnalyzerFieldType">autocomplete</str>
<str name="buildOnCommit">true</str>
</lst>
schema.xml:
<fieldType name="autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true" outputUnigramsIfNoShingles="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
我想返回最多 3 个单词作为自动完成术语。 SuggestComponent 是否可以做到这一点,或者您将如何做到这一点?无论我尝试什么,我总是会收到匹配文档的完整字段值。
这是预期的行为还是我做错了什么?
提前非常感谢
【问题讨论】:
标签: solr autocomplete autosuggest