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

emr*_*cer 12 solr sql-null

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

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

理论上,这个查询应该有效.

以下是一些信息:

查询:(姓名:约翰) - >结果数:15383 //约翰斯

查询:(名称:{*TO*}) - >结果数:61013 //具有名称的人

查询: - (名称:{*TO*}) - >结果数:216888 //没有名字的人

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

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

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

任何帮助,将不胜感激.

Ali*_*iya 23

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

  • `*:*`表示所有行.`*:*-name:*`表示没有名称值的所有行.`name:john OR(*:*-name:*)`可以转换为SQL,如`name ='john'或名称IS NULL (3认同)