如何查询Solr中的空字段或特定值

如何查询Solr中的空字段或特定值,solr,Solr,如何执行筛选为空白字段或特定值的OR表达式 这似乎不行: q=(-PrivacyLevel:*)或PrivacyLevel:2 谢谢退房 纯否定查询:- -field:[*TO*]查找没有字段值的所有文档 您可以尝试:- q=-PrivacyLevel:[*TO*]或PrivacyLevel:2这应该可以: q=(*:* AND -PrivacyLevel:[* TO *]) OR PrivacyLevel:2 这是为我工作的: fq=(* -type:[ * TO * ]) || (* +t

如何执行筛选为空白字段或特定值的OR表达式

这似乎不行:

q=(-PrivacyLevel:*)或PrivacyLevel:2

谢谢退房

纯否定查询:-

-field:[*TO*]
查找没有字段值的所有文档

您可以尝试:-

q=-PrivacyLevel:[*TO*]或PrivacyLevel:2

这应该可以:

q=(*:* AND -PrivacyLevel:[* TO *]) OR PrivacyLevel:2
这是为我工作的:

fq=(* -type:[ * TO * ]) || (* +type:company)

另请参阅以了解潜在问题和否定查询的解决方法。

答案是按照建议使用双重否定。从数学上讲,这与非否定查询相同,但是,Solr只理解双否定版本:

q=-(-PrivacyLevel:2 PrivacyLevel:*)
注意:这也适用于过滤器查询:

fq=-(-PrivacyLevel:2 PrivacyLevel:*)

我的解决方案是
q=-PrivacyLevel:(*)PrivacyLevel:(“2”)


快乐编码。

空白或不存在(即:未定义)?您可以查看指向相同答案的链接。多多余啊<代码>**?这不是有效的查询词。*和**都执行相同的任务。为了避免歧义,我编辑了我的答案。