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



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

这是

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

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

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

最新更新