我阅读了同一个问题的所有答案,并且我不清楚哪个应该用于我的用例以及为什么.两者都返回相同的结果.我理解"FilterQuery将被缓存,使整个查询时间更快",就像有人正确回答一样.
我也理解"过滤也允许对构面进行标记,因此您可以标记构面以包括为查询返回的所有构面",就像其他人也正确回答一样.
我不明白读这个,为什么然后任何人都会使用Q,因为基于我看到的所有答案和书籍,FQ似乎好得多.
除此之外,我确信可能存在这两个原因.
我想要的是弄清楚什么是最适合我的用例 - 文档中非常缺乏有用的示例.
业务规则#1:日期必须始终存在于每个查询中.
业务规则#2:99%的查询将使用最新日期,但RANDOM客户端和随机报告.
事实:我们认为这是一个缓慢而不是搜索的方面.
问题:
鉴于此搜索条件,以及这些编写查询的方法:
A)q =日期:20130214 AND客户:Joe&facet.field = date&facet.field = client ...
B)q =日期:20130214&fq =客户:Joe&facet.field = date&facet.field = client ...
C)q =客户:Joe&fq = date:20130214&facet.field = date&facet.field = client ...
D)q =*:*&fq = date:20130214&fq = client:Joe&facet.field = date&facet.field = client ...
今天,我有D)用于所有情况,但我怀疑这是错误的,并在Solr(版本3.6)中导致OOM.
谢谢您的帮助!
solr ×1