9

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

这似乎没有这样做:

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

谢谢

4

6 回答 6

7

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

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

注意:这也适用于过滤器查询:

fq=-(-PrivacyLevel:2 PrivacyLevel:*)
于 2017-08-14T12:23:14.477 回答
6

结帐SolrQuery 语法

纯否定查询:-

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

你可以试试 :-

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

于 2012-08-15T05:59:03.657 回答
3

这应该有效:

q=(*:* AND -PrivacyLevel:[* TO *]) OR PrivacyLevel:2
于 2013-08-21T22:13:24.477 回答
3

这对我有用:

fq=(* -type:[ * TO * ]) || (* +type:company)
于 2015-07-21T14:11:02.127 回答
1

另请参阅使用 AND 和 OR 运算符的 Solr 字段查询 (fq),了解潜在问题和否定查询的解决方法。

于 2016-12-21T09:00:46.933 回答
0

对我有用的解决方案是q = -PrivacyLevel:(*) PrivacyLevel:("2").

快乐编码。

于 2019-05-08T07:39:49.957 回答