2017-08-05 6 views
0

J'essaie de construire une requête elasticsearch pour not en utilisant bool, puisque not est obsolète. Par exemple. Faire correspondre tous les documents n'appartenant pas à [email protected].Requête de recherche élastique utilisant bool au lieu de

J'ai essayé ces utilisant ElasticSearch-dsl (suivant ce poste https://www.elastic.co/blog/lost-in-translation-boolean-operations-and-filters-in-the-bool-query):

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

Cela renvoie aucun résultat, bien que les documents autres que 'author': '[email protected]' existent.

J'ai aussi essayé

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

Cela renvoie un mélange de documents où certains ont 'author': '[email protected]' et d'autres non.

+0

vous devriez essayer d'ajouter must_not au même niveau de moût. Comme: bool> must, must_not. D'un autre côté, le niveau de base de devrait signifier "ou". Avec cela ou, certains documents indésirables peuvent apparaître. – hkulekci

+0

Vous pouvez essayer de créer des phrases sur votre recherche. Par exemple, je veux obtenir des documents qui ne sont pas des documents propres à l'utilisateur et qui sont privés. Alors, quelle est votre requête? Pour compléter nos phrases. – hkulekci

Répondre