SOLR过滤查询与主查询

mrd*_*650 51 solr filter

SOLR文档声明,与主查询不同,过滤查询不会影响文档分数.任何人都可以解释这是什么意思,最好是一个例子.

谢谢.

rfe*_*eak 56

FilterQuery仅存储文档IDS.这使得应用过滤器以包含/排除文档非常快.这方面的好例子是根据国家/地区,产品类型,可用性等从搜索过滤产品.

普通查询可以执行完全相同的功能,但它具有非常复杂的评分系统来确定"相关性".我相信文档表明评分只在主查询上完成,而不是在过滤查询上完成.这也应该提高查询速度.

所以,我可以查询:

description:Kohler AND productType:Toilet
Run Code Online (Sandbox Code Playgroud)

或者我可以查询:

description:Kohler
with a FQ of productType:Toilet
Run Code Online (Sandbox Code Playgroud)

结果将是相同的,但分数会有所不同.此外,如果您在一天中收到许多不同的查询productType:Toilet,则会缓存FilterQuery,从而加快整体查询时间.


小智 7

fq 用于固定的值列表。如果您搜索 q=sunroof+stereo 和 fq=Mustang solr 将对 q 参数进行文本分析,因为 q=sunroof+stereo 和 q=stereo+sunroof 将返回相同的结果集。但是当通过 fq 过滤搜索时,不会对 fq 参数进行分析,并且假设所有返回的文档都与 fq 匹配,因此不需要修改匹配的文档的分数。