【发布时间】:2012-02-02 14:13:08
【问题描述】:
SOLR docs,声明 过滤查询 与 主查询 不同,不会影响文档得分。谁能解释一下这到底是什么意思,最好举个例子。
谢谢。
【问题讨论】:
SOLR docs,声明 过滤查询 与 主查询 不同,不会影响文档得分。谁能解释一下这到底是什么意思,最好举个例子。
谢谢。
【问题讨论】:
fq 用于固定的值列表。如果您在 q=sunroof+stereo 和 fq=Mustang 上搜索,则 solr 将对 q 参数进行文本分析,因为 q=sunroof+stereo 和 q=stereo+sunroof 将返回相同的结果集。但是当通过 fq 过滤搜索时,没有对 fq 参数进行分析,并且假定所有返回的文档都将与 fq 匹配,因此无需修改匹配文档的分数。
【讨论】:
FilterQuery 仅存储文档 ID。这使得将过滤器应用于包含/排除文档的速度非常快。这方面的一个很好的例子是根据国家、产品类型、可用性等从搜索中过滤产品时。
普通查询可以执行完全相同的功能,但它有一个非常复杂的评分系统来确定“相关性”。我相信文档表明评分仅在主查询上完成,而不是在过滤器查询上。这也应该会提高查询速度。
所以,我可以查询:
description:Kohler AND productType:Toilet
或者我可以查询:
description:Kohler
with a FQ of productType:Toilet
结果会相同,但分数会不同。此外,如果您在一天中收到许多针对 productType:Toilet 的不同查询,FilterQuery 将被缓存,从而使整体查询时间更快。
【讨论】: