Filter SOLR筛选器查询与主查询

Filter SOLR筛选器查询与主查询,filter,solr,Filter,Solr,,说明与主查询不同,过滤查询不影响文档分数。谁能解释一下这到底意味着什么,最好是举个例子 谢谢。过滤器查询只存储文档ID。这使得应用过滤器来包括/排除文档的速度非常快。这方面的好例子是根据国家、产品类型、可用性等从搜索中筛选产品 普通查询可以执行完全相同的功能,但它有一个非常复杂的评分系统来确定“相关性”。我相信文档表明评分只在主查询上进行,而不是在筛选查询上进行。这也会提高查询速度 因此,我可以查询: description:Kohler AND productType:Toilet des

,说明与主查询不同,过滤查询不影响文档分数。谁能解释一下这到底意味着什么,最好是举个例子


谢谢。

过滤器查询只存储文档ID。这使得应用过滤器来包括/排除文档的速度非常快。这方面的好例子是根据国家、产品类型、可用性等从搜索中筛选产品

普通查询可以执行完全相同的功能,但它有一个非常复杂的评分系统来确定“相关性”。我相信文档表明评分只在主查询上进行,而不是在筛选查询上进行。这也会提高查询速度

因此,我可以查询:

description:Kohler AND productType:Toilet
description:Kohler
with a FQ of productType:Toilet
或者我可以查询:

description:Kohler AND productType:Toilet
description:Kohler
with a FQ of productType:Toilet

结果是一样的,但分数不同。此外,如果您一天中有许多不同的查询是针对
productType:Toilet
,则FilterQuery将被缓存,从而加快整个查询时间。

fq用于固定的值列表。如果在q=天窗+立体声和fq=Mustang solr上搜索,将对q参数进行文本分析,因为q=天窗+立体声和q=立体声+天窗将返回相同的结果集。但是,通过fq筛选搜索时,没有对fq参数应用分析,并且假设所有返回的文档都将与fq匹配,因此无需修改匹配文档的分数。

因此,如果例如在索引时,在“productType”上有术语提升,如果在FilterQuery中而不是在主查询中设置了productType,则可以对结果进行不同的排序,这样,如果在查询中设置了productType,则productType分数较高的文档将位于顶部,如果是在FilterQuery中,则productType分数较高的文档可能位于底部,因为分数在FilterQuery中,所以不应用该分数。我理解你的意思吗?正确。但是,如果将productType作为AND子句放在主查询中,则无论如何都不会返回任何其他productType。因此,这可能是有限的价值。但是,你所说的意思是你理解它是如何工作的。是的,你有一个观点,因为我错误地假设productType上也有FTS(因此可能会返回多个productType,但通常没有*Type上的FTS)。谢谢。我想当你对不同分数的字段使用OR'ed子查询进行复合查询时,这个分数将是相关的。