我试图使用Solr的5.3.0实现自动完成功能如何获得建议Solr中5.3.0
solrconfig.xml中看起来像这样
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">default</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">suggest_ngram</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">text_suggest_ngram</str>
<str name="buildOnStartup">true</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy" >
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
托管模式长相像这样:
<fieldType name="text_suggest_ngram" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" maxGramSize="10" minGramSize="2" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="suggest_ngram" type="text_suggest_ngram" indexed="true" stored="false"/>
<field name="name" type="string" multiValued="false" indexed="true" stored="true"/>
<field name="price" type="tlong" multiValued="false" indexed="true" stored="true"/>
<copyField source="name" dest="suggest_ngram"/>
现在,当我从Solr的管理面板使用分析仪,我可以看到indexe d图。并且它成功地指出了比赛。
然而,当我使用查询:
http://localhost:8983/solr/products/suggest?suggest=true&suggest.build=true&wt=json&suggest.q=Jind
我得到0的建议。 回复此处: https://api.myjson.com/bins/47r3i
在其中一个文档中存在值为“Jindal Panther”的名称键。此外,我发现如果我创建一个类型为“String”的虚拟复制字段“source”作为源名称作为“name”,任何对“name”正常工作的建议都不适用于“suggest”。这可能是任何配置错误的复制域来启用建议吗?
任何帮助,将不胜感激。 在此先感谢。编辑: 得到了解决方案。请参阅下面的接受答案及其评论。 有一个我遇到的博客,精美地解释Suggesters。 Solr Search的新手绝对值得一读。
https://lucidworks.com/blog/2015/03/04/solr-suggester/
我能够从现在的价值开始得到的建议。但我也希望能够从中间出现的单词提出建议。 但查询: 'http:// localhost:8983/solr/products/suggest?suggest = true&suggest.build = true&wt = json&suggest.q = Pan'不会给出任何结果。 –
你正在使用的当前'lookupImpl'实现是什么? – YoungHobbit
FuzzyLookupFactory 由于上述配置不起作用,我转而从名称字段获取建议,而不是从启用n克的复制字段获取建议。 –