solr查询优先级

时间:2011-12-10 18:23:51

标签: solr

我以两种方式提出了一个solr查询

方式1:

status =“已发送”AND主机名:“host.com”AND log_date:[2011-12-08T00:00:00Z TO 2011-12-08T23:59:59Z] 结果:328232

方式2:

主机名:“host.com”AND log_date:[2011-12-08T00:00:00Z TO 2011-12-08T23:59:59Z] AND status =“已发送” 结果:62359

我在原始数据集中通过grep等验证,发现第二种查询方式2:给出正确的计数。这是查询应该如何,或者我的查询格式错误?

我的另一个问题是我只使用solr进行索引和搜索,因此我可以告诉solr以某种方式不计算得分并且在返回结果时不担心得分吗?它会让我的事情更快吗?

1 个答案:

答案 0 :(得分:0)

我相信你应该考虑使用Solr Filter Queries来帮助限制你的结果。我不确定您的主要查询是什么以及可以作为过滤查询传递什么,因为所有当前搜索字段似乎只是对给定字段值的过滤器。因此,您可能会使用log_date作为主查询术语进行查询,如下所示:

 q=log_date:[2011-12-08T00:00:00Z TO 2011-12-08T23:59:59Z]&fq=status:"sent"&fq=hostname:"host.com"

您可能希望遵循上面wiki链接中的指导并合并部分或全部过滤查询值。

就分数问题而言,AKAIK的分数总是由Solr计算,因为它使用它来返回和排列索引中的相关项目。因此,我不认为有可能将其关闭或通过不计算分数获得任何表现。如果您不需要,则无法通过更改fl参数将分数指定为要返回的字段。