SOLR docs,声明过滤查询,与主查询不同,不会影响文档分数。任何人都可以解释这是什么意思,最好用一个例子。
感谢。
答案 0 :(得分:54)
FilterQuery ONLY存储文档IDS。这使得应用过滤器以包含/排除文档非常快。这方面的好例子是根据国家,产品类型,可用性等从搜索过滤产品
普通查询可以执行完全相同的功能,但它有一个非常复杂的评分系统来确定“相关性”。我相信文档表明评分只在主查询上完成,而不是在过滤查询上完成。这也应该提高查询速度。
所以,我可以查询:
description:Kohler AND productType:Toilet
或者我可以查询:
description:Kohler
with a FQ of productType:Toilet
结果会相同,但分数会有所不同。此外,如果您在productType:Toilet
全天收到许多不同的查询,则会缓存FilterQuery,从而加快整体查询时间。
答案 1 :(得分:4)
fq适用于固定的值列表。如果您搜索q =天窗+立体声和fq = Mustang solr将对q参数进行文本分析,因为q =天窗+立体声和q =立体声+天窗将返回相同的结果集。但是当通过fq过滤搜索时,没有应用于fq参数的分析,并且假设所有返回的文档都与fq匹配,因此不需要它来修改匹配的文档的分数。