Kim*_*rly 6 search solr boolean filter
对于Solr中的过滤器查询,我需要包括不属于某种类型的所有文档,以及该类型中具有特定字段值的所有文档.
我试过这个:
fq=(-type_id:(A) OR content:(['' TO *]))
Run Code Online (Sandbox Code Playgroud)
但是它排除了type_idB,C等有空的文件content.(type_id是一个string领域,content是text.)
我已经看到了这个问题:复杂的SOLR查询包括NOT和OR以及关于运算符的这篇文章:http://robotlibrarian.billdueber.com/2011/12/solr-and-boolean-operators/.我认为我的语法应该是正确的.谁能看到我的错误?
更新:我正在使用LuceneQParser.它将上面的过滤器查询解析为
-type_id:A content:['' TO *]
Run Code Online (Sandbox Code Playgroud)
它将comments(-type_id:A OR (content:[* TO *] AND type_id:A))中建议的过滤器查询解析为
-type_id:A (+content:[* TO *] +type_id:A)
Run Code Online (Sandbox Code Playgroud)
所以没有结果.
Joh*_*ika 12
否定需要一整套来匹配它,所以你的过滤器应该是:
fq=((*:* AND -type_id:A) OR content:(['' TO *]))
Run Code Online (Sandbox Code Playgroud)