Mots les plus utilisés dans un documents

Bonjour,

Je souhaite récupérer les "mots clés" les plus présents dans un champs description d'un document, j'ai vu plusieurs façons de le faire mais aucune ne semble donner le résultat que j'espère...

La solution qui s'en rapproche le plus, c'est d'utiliser les termsvector, mon problème c'est qu'il semblerait que l'analyzer définit dans le mapping du champs n'est pas pris en compte (je me retrouve avec les stop words etc) et surtout, plus aucun nom propre et tout est découpé en mot (du type "New York" => "new" et "york" ...

Est-ce qu'il y a une solution simple pour avoir le comportement recherche ?

Merci d'avance pour votre aide

Bonjour,

Pour les stop words, ils ne font pas partie des donnees enregistre apres indexage donc il est normal qu'ils ne soient pas retournés; en indexant les memes donnees sur un champs qui n'est aucun stop word ces terms seront retournés par exemple standard analyzer : https://www.elastic.co/guide/en/elasticsearch/guide/current/using-stopwords.html

Commentaire similaire pour avoir 2 mots regroupés, analyzer utilise l'espace pour séparer les mots donc "new york" sont 2 mots. Si ce texte ou les noms propres étaient sur un champs separé de type keyword, il serait possible de faire des agregations dessus.
Il est aussi possible de rechercher separement sans changement sur le mapping des mots qui apparaisse ensemble si il y a une liste des phrases à chercher: https://www.elastic.co/guide/en/elasticsearch/guide/current/proximity-matching.html

Pour les mots composés, il y a aussi le shingle qui est l’inverse du ngram. Il assemble des termes ensembles à l’indexation.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.