[英]How to OR null value in Apache Solr query?
為我解決這個問題的最后一個選擇是詢問 StackOverflow。
我正在嘗試創建一個 Solr 查詢來獲取在其字段之一上具有特定值或沒有值的文檔...
從理論上講,這個查詢應該有效。
以下是一些信息:
查詢: (name: john) --> 結果計數:15383 //Johns
查詢: (name: {* TO *}) --> Result count: 61013 //有名字的人
查詢:-(name: {* TO *}) --> Result count: 216888 //沒有名字的人
現在,當我使用 OR 運算符在同一個查詢中使用第一個和第三個查詢時,我希望得到 (216888 + 15383) 結果。 但是 SOLR 給出了 15383 個結果,簡單地忽略了第三個查詢的影響:
查詢: +((name:john) (-(name:{* TO *}))) //這是我使用的查詢。
這是 Solr 的錯誤還是我在查詢中做錯了? 合並兩個查詢結果是一個額外的解決方案,但如果我可以用一個簡單的查詢來完成,我不想做額外的代碼實現。
任何幫助,將不勝感激。
(-name:[* TO *] AND *:*) OR name:john
您也可以像這樣使用它。
&fq=name:john OR !name:['' TO *]
您可以在下面使用以獲得空值和休息的結果
-name:[* TO *] OR *:*
試試下面的查詢 -
q=(name:john OR -(name:[* TO *]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.