【发布时间】:2015-08-31 08:00:05
【问题描述】:
我正在尝试实现 solr 的自动建议,这是我在 solrconfig.xml 文件中所做的更改
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suggest</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.collate">true</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<searchComponent class="solr.SpellCheckComponent" name="suggest">
<lst name="spellchecker">
<str name="name">suggest</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookupFactory</str>
<str name="field">displayName</str> <!-- the indexed field to derive suggestions from -->
<float name="threshold">0.005</float>
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
当我尝试将示例输入作为“p”进行查询时
http://localhost:8983/solr/food/suggest?q=p&wt=json&indent=true
它返回 5 个单词
"pizza", "potato", "pasta", "protein", "premium"
但在 displayName 字段中,我得到了像 paneer , palak 等这样的词没有出现,为什么会这样?
【问题讨论】:
-
field : 索引中用作建议条款基础的字段。
-
是的,我提到了我的领域
-
您是否正在寻找超过五个结果然后提供更新默认配置
<str name="spellcheck.count">5</str>。您也可以在查询命令&suggest.count=10中传递参数。 -
你没有在你传递的url中引用suggestre名称?哎呀,试试abhishek的建议
-
试试这个
http://localhost:8983/solr/food/suggest?q=p&wt=json&indent=true&suggest.count=10
标签: solr autosuggest