如何在Apache Solr查询中使用OR空值?

vqlkdk9b  于 2022-11-05  发布在  Solr
关注(0)|答案(3)|浏览(176)

解决这个问题的最后一个选择是问StackOverflow。
我正在尝试创建一个Solr查询,以获取其中一个字段具有特定值或没有值的文档。
从理论上讲,这个查询应该是有效的。
以下是一些信息:

查询:(名称:John)--〉结果计数:小行星15383
查询:(名称:{* TO })--〉结果计数:61013 //有名字的人
查询:-(名称:{
TO *})--〉结果计数:216888 //没有名称的人员

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

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

这是Solr的一个bug还是我在查询中做错了?合并两个查询结果是一个额外的解决方案,但是如果我可以用一个简单的查询来做的话,我不想做额外的代码实现。
任何帮助都将不胜感激。

bkkx9g8r

bkkx9g8r1#

您也可以这样使用它。

&fq=name:john OR !name:['' TO *]
rjee0c15

rjee0c152#

您可以使用下面的语句来获取null和rest的结果

-name:[* TO *] OR *:*
d4so4syb

d4so4syb3#

请尝试以下查询-

q=(name:john OR -(name:[* TO *]))

相关问题