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

时间:2012-08-14 17:03:40

标签: solr

如何过滤到空白字段或特定值的OR表达式?

这似乎没有这样做:

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

由于

6 个答案:

答案 0 :(得分:5)

结帐SolrQuerySyntax

纯正否定查询: -

-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")

快乐的编码。