我正在使用Solr建议器组件,并且想知道是否可以通过fq
参数筛选结果。我有这样一个查询:建议者Solr过滤器查询
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
的建议。
所以我的问题是,建议者(或基本上是SpellCheckerComponent)意识到fq参数,以及如何使用此参数来过滤建议(或在以后阶段,拼写更正)。
EDIT
我发现,即“正常”的拼写检查组件(例如用类solr.IndexBasedSpellChecker
例如),确实采取fq
参数考虑在内。我可以设置
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">false</str>
和由某一类别ID,其中该关键字shirt
不存在过滤时,不返回shitr
的建议。
我想知道,为什么这不适用于建议组件。有任何想法吗?
感谢您的回答。 'extendedResults'值是否考虑了'fq'值?比方说,我按类别1过滤我的查询,建议者返回一些值,但是'extendedResults'字段表示,不存在您当前查询的任何值吗? – 23tux