2017-07-11 1 views
0

J'ai un problème quand je fais un match_phrase_query avec une chaîne contenant l'espace, mais pas toujours =/ElasticSearch match_phrase_query avec l'espace ne fonctionne pas

3 exemples:

1/

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury" 
       } 
       } 
    } 
} 

Ce premier exemple fonctionne et donne des résultats.

2/

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury chelsea" 
       } 
       } 
    } 
} 

Ce second exemple, avec le nom complet fonctionne aussi.

3/

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury ch" 
       } 
       } 
    } 
} 

Ce ne fonctionnait pas exemple, je n'ai pas de retour de résultat. Je n'ai pas compris parce que cela fonctionne avec 1 mot, et 2 mots, avec le 2ème mot ayant un minimum de 3-4 caractères, en fonction du nom de la personne que je recherche.

Avez-vous déjà rencontré ce problème?

Merci vous, Ludovic

+0

Cela peut être dû au fait que vous avez beaucoup de termes commençant par 'ch'. Essayez d'ajouter le paramètre 'max_expansions' qui a la valeur par défaut 50 et augmentez-le à (par exemple) 100 pour voir si vous obtenez un résultat ou non. Le [document officiel explique] (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase-prefix.html) pourquoi vous rencontrez ce problème. – Val

+0

Veuillez ne pas ajouter _résolved_ au titre. Marquer une réponse comme acceptée indique aux autres que cette question a maintenant été résolue. S'il vous plaît prendre le [tour] pour plus d'aide. – Bugs

Répondre

0

Ceci est parce que vous avez beaucoup de termes commençant par ch. Essayez d'ajouter le paramètre max_expansions (dont la valeur par défaut est 50) et augmentez-le à (par exemple) 100 pour voir si vous obtenez un résultat ou non.

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury ch", 
        "max_expansions": 100  <--- add this 
       } 
       } 
    } 
} 

Le official doc explains pourquoi vous rencontrez ce problème.