【发布时间】:2013-12-27 20:09:45
【问题描述】:
我正在使用 Solr Suggester 组件,并且想知道是否可以通过 fq 参数过滤结果。我有一个这样的查询:
http://localhost:8982/solr/core1/suggest?q=shirts&fq=category_id%3A321&wt=json&indent=true&spellcheck=true&spellcheck.build=true
在这里,我尝试为q=shirts 提供一些建议。我想通过fq=category_id:321 过滤这个,这样我就不会得到其他类别的建议。因为category_id:321 的类别没有任何与shirts 相关的产品,所以它不应该返回任何建议。但确实如此。当尝试搜索该建议时,它什么也找不到,因为“原始”搜索是使用 fq=... 参数过滤的。
我在这里找到了collate http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collate 的东西。它会整理我的结果,但也会返回对shirts 的建议。
所以我的问题是,Suggester(或基本上是 SpellCheckerComponent)是否知道 fq 参数,以及如何使用此参数来过滤建议(或在稍后阶段,拼写更正)。
编辑
我发现,“普通”拼写检查组件(例如 solr.IndexBasedSpellChecker 类)确实考虑了 fq 参数。我可以设置
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">false</str>
并且在按特定类别 id 过滤时不返回对 shitr 的建议,其中关键字 shirt 不存在。
我想知道,为什么这不适用于建议组件。有什么想法吗?
【问题讨论】:
标签: solr lucene autosuggest spelling search-suggestion