2017-09-03 6 views
0

J'essaie de créer une requête en élastique mais cela ne fonctionne pas comme prévu.Construction d'un problème Requête élastique avec ou sans contition

requête Sql serait

select * from xyz 
where (phone1 = "1234" or phone2 ="1234" or phone3 = "1234") 
and status != "Z" 

Je veux des documents qui ont une valeur de 1234 dans phone1 ou phone2 ou sur le terrain de téléphone3 et le statut n'est pas égal à égal à z

je construire ci-dessous requête dans élastique mais renvoie l'enregistrement même si la valeur de status est égale à z. Je ne sais pas ce que je manque.

{ 
    "query": { 
     "bool": { 
      "should": [ 
       { 
        "term": { 
         "phone1": "1234" 
        } 
       }, 
       { 
        "term": { 
         "phone2": "1234" 
        } 
       }, 
       { 
        "term": { 
         "phone3": "1234" 
        } 
       } 
      ], 
      "minimum_should_match": 1, 
      "must_not": { 
       "term": { 
        "status": "Z" 
       } 
      } 
     } 
    } 
} 

Répondre

0

je pourrais en mesure de comprendre la question, quand je fais une recherche élastique consulter les données stockées sous forme de Z pour le statut, mais dans la requête Z est toujours retour des enregistrements, quand je compare avec un petit cas z, son travail comme prévu. il semble faire avec l'analyseur par défaut