2012-04-04 68 views
2

條款我們有一個簡單的域名,其中SOLR忽略「而不是」查詢

FirstName_s:"Bob" 

收益40個文件,並

-Department_t:"Ninjas" 

返回所有的文件(我們沒有一個忍者部門

我們預計查詢

(FirstName_s:"Bob") OR (-Department_t:"Ninjas") 

返回的所有文件,但它只是返回原來的40個文件。

我們嘗試了幾種不同的順序,嘗試使用'NOT'而不是' - '都無濟於事。

這是預期的行爲?也許更重要的是,我們如何獲得我們期望的行爲?

+0

感謝@jarosławgomułka,我openned這個[票](https://issues.apache.org/jira/browse/SOLR-3315) – Tom 2012-04-04 19:06:43

回答

0

我偶然發現了https://issues.apache.org/jira/browse/SOLR-2209,所以也許括號會導致錯誤。這是否工作?

FirstName_s:"Bob" OR -Department_t:"Ninjas" 

是否rewritting的方式查詢,它不會包含OR(使用De_Morgan's law)幫助?

-(-FirstName_s:"Bob" AND Department_t:"Ninjas") 
+0

移除包袱無效,但與De Morgans重構。謝謝!我將向Solr報告一個錯誤,我認爲我們不應該在查詢生成時使用de Morgans。 – Tom 2012-04-04 19:00:56

0

事實證明,這是一個多值字段的問題,以及它們的行爲方式與否。

我們不得不改變我們的所有不查詢的多值字段

(*:* -department_t:"Ninjas")