2017-06-11 2 views
0

Je dois ajouter une barre de recherche dans mon application. La recherche s'effectuera par prénom et nom. Je ne sais pas comment composer la requête elastcsearch. Prénom et Nom sont deux champs séparés. Je suis assez nouveau en es.Requête de recherche de champ multiple dans elasticsearch

Exemple: Prénom: John Nom: Joshua

Chaîne de barre de recherche des résultats supérieurs: John Jo John Jos John Josh Joshua John Joshua Joh ...

Répondre

-1

Utilisez la requête suivante:

GET /_search { 
    "query": { 
    "query_string" : { 
     "query" : "firstName:jhon 
      AND lastName: Lennon" 
     } 
    } 
    } 
0

Vous pouvez utiliser la requête Prefix dans votre recherche. Correspond aux documents dont les champs contiennent des termes avec un préfixe spécifié (non analysé). La requête de préfixe correspond à Lucene Prefix Query. Structure de la requête est la suivante:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "prefix": { 
         "firstname": "jo" 
        } 
       }, 
       { 
        "match": { 
         "lastname": "jo" 
        } 
       } 
      ] 
     } 
    } 
} 

Ne pas essayer wildcards, car ils ne seront pas efficaces dans cette recherche