Je suis nouveau à Elasticsearch et j'ai un problème concernant l'interrogation.Elasticsearch ignore les séparateurs de mots
I indexées chaînes comme ça:
my-super-string
my-other-string
my-little-string
Ce sont les chaînes limaces. Donc, ce ne sont pas des espaces, seulement des caractères alphanumériques. Le mappage pour le champ associé est uniquement "type = chaîne".
J'utilise une requête comme ceci:
{ "query":{ "query_string":{ "query": "*"+<MY_QUERY>+"*", "rewrite": "top_terms_10" } }}
Où "my_query" est aussi une limace. Quelque chose comme "mon-super" par exemple. Lorsque vous recherchez "mon", j'obtiens des résultats.
Lorsque vous recherchez "my-super" je n'obtiens aucun résultat et j'aimerais avoir "my-super-string".
Quelqu'un peut-il m'aider à ce sujet? Merci!
Bonjour imotov et merci pour votre réponse. – Vinc
Avec le match_phrase je dois avoir une correspondance exacte pour avoir des résultats. J'ai donc essayé le match_phrase_prefix, ça marche bien, mais j'ai aussi besoin d'un "match_phrase_suffix" si je recherche "super-s" je voudrais obtenir "my-super-string". En fait, je voudrais avoir un simple caractère générique comme '* -str *' qui correspondra à n'importe quel slug contenant "-str" C'est le caractère "-" avec lequel j'ai un problème. Chaque fois que j'en avais un à ma question je n'obtiens aucun résultat. – Vinc
Oh, je vois. Alors c'est ceci: http://stackoverflow.com/questions/6467067/how-to-search-for-a-part-of-a-word-with-elasticsearch/6471449#6471449 – imotov