Essayer d'accéder au texte analysé/tokenisé dans mes documents ElasticSearch.
Je sais que vous pouvez utiliser Analyze API pour analyser du texte arbitraire selon vos modules d'analyse. J'ai donc pu copier et coller des données de mes documents dans l'API Analyze pour voir comment elles étaient symbolisées.
Cela semble cependant prendre beaucoup de temps. Existe-t-il un moyen de demander à ElasticSearch de renvoyer le texte symbolisé dans les résultats de recherche? J'ai parcouru les documents et je n'ai rien trouvé.
Jetez un œil à cette autre réponse: elasticsearch - Retourne les jetons d'un champ . Malheureusement, il nécessite de réanalyser à la volée le contenu de votre champ à l'aide du script fourni.
Il devrait être possible d'écrire un plugin pour exposer cette fonctionnalité. L'idée serait d'ajouter deux points de terminaison à:
Cette question est un peu ancienne, mais je pense peut-être qu'une réponse supplémentaire est nécessaire.
Avec ElasticSearch 1.0.0, Term Vector API a été ajouté, ce qui vous donne un accès direct aux magasins de jetons ElasticSearch sous le capot, par document. Les documents de l'API ne sont pas très clairs à ce sujet (uniquement mentionnés dans l'exemple), mais pour utiliser l'API, vous devez d'abord indiquer dans votre définition de mappage que vous souhaitez stocker les vecteurs de termes avec le term_vector
propriété sur chaque champ.
Vous souhaiterez peut-être utiliser les scripts, mais votre serveur doit avoir les scripts activés.
curl 'http://localhost:9200/your_index/your_type/_search?pretty=true' -d '{
"query" : {
"match_all" : { }
},
"script_fields": {
"terms" : {
"script": "doc[field].values",
"params": {
"field": "field_x.field_y"
}
}
}
}'
Le paramètre par défaut pour autoriser le script dépend de la version de recherche élastique, veuillez donc vérifier cela dans la documentation officielle.