Solr OR 查询没有 return 任何结果,而单独查询 returns 结果

Solr OR query does not return any result while queries returns result separately

我正在尝试 运行 或在 Solr 6.6 上查询,例如 "field:[x TO ] OR -field:[ TO *]",这意味着大于或等于某个值或空值。即使 field:[x TO ] 和 -field:[ TO *] 都有单独的结果集,这个 OR 查询也会 return 空集。当我使用像“(field:[x TO ]) OR (-field:[ TO *])”这样的括号时,它 returns 字段的结果:[x TO *] 只要。你能解释一下这个查询有什么问题吗?

这是由您的第二个陈述的第二部分 (OR -field:[x TO *]) 引起的。将 - 运算符视为从第一个集合中减去第二个集合 - 但这里的问题是您没有任何东西可以从中减去第二个集合。

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

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