gpt4 book ai didi

solr - Solr主要查询与FQ

转载 作者:行者123 更新时间:2023-12-04 00:31:05 25 4
gpt4 key购买 nike

我阅读了同一问题的所有答案,但对于使用案例应该使用哪个答案以及原因却不清楚。
两者都返回相同的结果。
我知道“可以缓存FilterQuery,从而使整体查询时间更快”,就像有人正确回答了一样。

我也了解“过滤还可以标记构面,因此您可以标记构面以包括查询返回的所有构面”,就像其他人也正确回答一样。

我不明白这是为什么后来有人会使用Q,因为根据我所见的所有答案和书,FQ似乎好得多。

除此以外,我确信两者都有可能存在。

我想找出最适合我的用例的文档-该文档非常缺少有用的示例。


我的文档有:日期,客户,报告和其他一些字段
1个营业日期= 350万个文档。
文件总数为2.5亿,并且还在不断增加(60个日期* 8000个客户* 1000份报告)
我会在日期,客户,报告方面进行评估,并且会使用方面的标记。
UI的整体外观类似于任何电子商务网站,例如:Amazon,左侧为切面。
不使用计分。


业务规则1:每个查询中都必须始终显示日期。

业务规则2:99%的查询将使用LATEST日期,但使用RANDOM客户端和随机报告。

事实:我们确定此刻面很慢,没有进行搜索。

问题:

给定此搜索条件以及以下写查询的方式:


A)q = date:20130214和client:Joe&facet.field = date&facet.field = client ...

B)q = date:20130214&fq = client:Joe&facet.field = date&facet.field = client ...

C)q = client:Joe&fq = date:20130214&facet.field = date&facet.field = client ...

D)q = *:*&fq = date:20130214&fq = client:Joe&facet.field = date&facet.field = client ...



您认为上述哪一个最好,为什么?请记住,大多数查询将针对20130214运行
在FQ过滤中先完成,然后再应用Q条件,或者反之吗?


今天,我在所有情况下都使用D),但是我怀疑这是错误的,并且正在Solr(3.6版)中引起OOM。

谢谢您的帮助!

最佳答案

q查询是请求的主要查询。
它使您可以实际搜索多个字段。
q查询将确定每个文档的得分,因此将参与相关性计算。

q=*:*只会返回具有相同分数的所有文档。

fq是用于过滤文档的过滤查询,与搜索无关。
因此,如果您有要过滤的固定值,则应使用过滤器来限制结果。
fq不会影响结果的评分。
过滤时,Solr使用过滤器缓存来增强后续过滤器查询的性能。

因此,理想情况下,您应该检查需求要求。如果要搜索,则应始终使用q;如果要过滤/限制结果,则应使用fq

构面只是结果的附加项,不会影响结果。

关于solr - Solr主要查询与FQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com