我正在使用 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>
并且在按不存在shitr
关键字的特定类别 id 过滤时不返回建议。shirt
我想知道,为什么这不适用于建议组件。有任何想法吗?