Solr过滤器查询中多值字段上的布尔查询
问题描述:
我们有一个名为tags
的多值索引字段。我们希望找到通过筛选查询符合下列条件之一的所有文件:Solr过滤器查询中多值字段上的布尔查询
- 如果标签
flagged
存在,则标记safe
也应该存在。 - 标签
flagged
不存在。
我试过fq=(tags:(flagged AND safe) OR -tags:flagged)
但它没有返回想要的结果。而是返回标记为safe
的文档,而不是标记flagged
,即结果与此查询相同:fq=(tags:safe AND -tags:flagged)
。我如何解决我的查询?
fq=(tags:safe AND -tags:flagged)
和fq=(tags:safe OR -tags:flagged)
都返回相同的结果。为什么是这样?
Solr版本:3.6.2
答
以下工作正常。
从埃里克孵化器(solr的用户的邮寄组):
内纯粹负子句不受Lucene的不允许的。 (Solr的支持顶级否定句,虽然如此,如预期q=NOT foo
作品)
要获得一个嵌套的负子句来上班,试试这个:
q=tags:(flagged AND safe) OR (*:* AND NOT tags:flagged)
你可以尝试FQ =(标签:(标记AND标签:(*:* NOT flagged)) – Jayendra 2013-05-08 04:18:11
该查询给出了一个http 400.如果我做了'fq =(tags:(标记AND安全)或者tags:(不标记))',那么结果是与'fq = tags:(标记和安全)'相同。 – arun 2013-05-13 19:59:16