如何过滤到空白字段或特定值的OR表达式?
这似乎没有这样做:
q=(-PrivacyLevel:*) OR PrivacyLevel:2
由于
答案 0 :(得分:5)
纯正否定查询: -
-field:[* TO *]
查找没有字段值
您可以尝试: -
q=-PrivacyLevel:[* TO *] OR PrivacyLevel:2
答案 1 :(得分:4)
答案是使用Maurizio In denmark建议的双重否定。在数学上,这与非否定查询相同,但是,Solr只能理解双重否定版本:
q=-(-PrivacyLevel:2 PrivacyLevel:*)
注意:这也适用于过滤器查询:
fq=-(-PrivacyLevel:2 PrivacyLevel:*)
答案 2 :(得分:3)
这对我有用:
fq=(* -type:[ * TO * ]) || (* +type:company)
答案 3 :(得分:2)
这应该有效:
q=(*:* AND -PrivacyLevel:[* TO *]) OR PrivacyLevel:2
答案 4 :(得分:1)
另请参阅Solr field query (fq) with AND and OR operator,了解潜在问题以及使用否定查询的解决方法。
答案 5 :(得分:0)
对我有用的解决方案是q = -PrivacyLevel:(**) PrivacyLevel:("2")
。
快乐的编码。