为我解决这个问题的最后一个选择是询问 StackOverflow。

我正在尝试创建一个 Solr 查询来获取在其字段之一上具有特定值或没有值的文档...

从理论上讲,这个查询应该有效。

以下是一些信息:

Query: (name: john) --> 结果计数:15383//Johns

Query: (name: {* TO *}) --> Result count: 61013//有名字的人

Query: -(name: {* TO *}) --> Result count: 216888//没有名字的人

现在,当我使用 OR 运算符在同一个查询中使用第一个和第三个查询时,我希望得到 (216888 + 15383) 结果。但是 SOLR 给出了 15383 个结果,简单地忽略了第三个查询的影响:

Query: +((name:john) (-(name:{* TO *})))//这是我用的查询。

这是 Solr 的错误还是我在查询中做错了?合并两个查询结果是一个额外的解决方案,但如果我可以用一个简单的查询来完成,我不想做额外的代码实现。

任何帮助,将不胜感激。

最佳答案

(-name:[* TO *] AND *:*) OR name:john

关于solr - 如何在 Apache Solr 查询中 OR 空值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7672259/

10-14 19:50
查看更多