[英]Solr filter query including NOT and OR
對於Solr中的過濾器查詢,我需要包括非特定類型的所有文檔,以及在某個字段中具有值的該類型的任何文檔。
我試過這個:
fq=(-type_id:(A) OR content:(['' TO *]))
但是它排除了具有null content
的type_id
B,C等文檔。 ( type_id
是string
字段, content
是text
。)
我已經看到了這個問題: 復雜的SOLR查詢包括NOT和OR以及關於運算符的這篇文章: http : //robotlibrarian.billdueber.com/2011/12/solr-and-boolean-operators/ 。 我認為我的語法應該是正確的。 誰能看到我的錯誤?
更新:我正在使用LuceneQParser。 它將上面的過濾器查詢解析為
-type_id:A content:['' TO *]
它解析注釋中建議的過濾器查詢( -type_id:A OR (content:[* TO *] AND type_id:A)
)
-type_id:A (+content:[* TO *] +type_id:A)
所以沒有結果。
否定需要一整套來匹配它,所以你的過濾器應該是:
fq=((*:* AND -type_id:A) OR content:(['' TO *]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.