2017-08-05 84 views
0

我試圖構建彈性搜索查詢not使用bool,因爲not已被棄用。例如。匹配不屬於[email protected]的所有文檔。彈性搜索查詢使用bool而不是

我試着用這些elasticsearch-DSL(以下這篇文章https://www.elastic.co/blog/lost-in-translation-boolean-operations-and-filters-in-the-bool-query):

{'query': { 
    'bool': { 
     'must_not': [{ 
      'match': { 
       'author': '[email protected]' 
      } 
     }] 
    } 
}} 

這雖然比其他'author': '[email protected]'文件存在不返回任何結果。

我也試過

{'query': { 
    'bool': { 
     'must_not': [{ 
      'term': { 
       'author': '[email protected]' 
      } 
     }] 
    } 
}} 

這將返回的文件,其中一些有'author': '[email protected]'和一些不混合。

+0

你應該嘗試在必須同級別添加must_not。像:bool> must,must_not。另一方面,應該指的基準級是「或」。有了這個或一些不需要的文檔可以出現。 – hkulekci

+0

您可以嘗試創建一個關於您的搜索的真句子。例如,我想獲取不是用戶自己的文檔的文檔,而且它們是私人的。那麼,你應該查詢什麼?完成我們的句子。 – hkulekci

回答