查询单独返回结果时,Solr OR查询不返回任何结果

时间:2018-01-15 06:06:23

标签: solr solr-query-syntax

我正在尝试在Solr 6.6上运行OR查询,例如"字段:[x TO ] OR -field:[ TO *]"这意味着大于或等于某个值或null。即使两个字段:[x TO ]和-field:[ TO *]都有结果集,这个OR查询确实返回空集。当我使用括号,如"(字段:[x TO ])或(-field:[ TO *])"它只返回字段的结果:[x TO *]。你能解释一下这个查询的问题吗?

1 个答案:

答案 0 :(得分:0)

这是由第二个语句的第二部分(OR -field:[x TO *])引起的。可以认为-运算符从第一个运算符中减去第二个运算符 - 但问题是你没有任何东西可以减去第二个数据集。

-field:foo查询是查询的 only 部分时,Solr以所有文档的完整集合开头,因此在某种意义上,查询*:*(所有文档)以查询为前缀。如果您的查询稍后在一组子句中,则不再是这种情况 - 它仅以第一个子句为前缀(如果有的话)。

要解决此问题,请明确:OR (*:* -field:[x TO *])