Un document a été segmenté par analyseur: ik_smart
(spécifié dans _mapping) à A BC D
, mais je souhaite modifier les termes générés en utilisant un autre analyseur: < code> ik_max_word puis-je réindexer le document par un autre analyseur de manière dynamique?
Supplément: Je ne veux pas attribuer un nouvel analyseur au champ, je veux juste changer les termes spécifiques du document en [AB C D]
3 Réponses :
Oui, vous pouvez d'abord ajouter un analyseur dans les paramètres, puis ajouter des mappages à l'aide de cet analyseur et, si nécessaire, réindexer.
Oui, c'est possible, mais vous devrez réindexer votre contenu, sinon vos recherches ne fonctionneront pas comme prévu.
Instructions pas à pas
analyseur
du champ et si nécessaire également le search_analyzer
POST / _ update_by_query
Et si ik_smart a déjà été assigné au champ "data" par exemple, comment attribueriez-vous un nouvel analyseur à "data" sans supprimer l'index?
L'analyseur détermine quels jetons sont produits. Vous ne pouvez pas modifier les mots-clés des jetons, sauf si vous réindexez le document / champ à l'aide de l'analyseur mis à jour / modifié.
Sur la base de votre dernière mise à jour, vous pouvez utiliser l'api update
.
Exécutez ce qui suit ( 1 est votre identifiant de document ):
POST my_index/_update/1 { "script" : { "source": "ctx._source.yourfield= params.value", "lang": "painless", "params" : { "value" : "[AB C D]" } } }
Essayez-vous d'attribuer un nouvel analyseur à un champ qui en a déjà un?
@AssaelAzran Non, je veux juste changer les termes de ce document spécifique en [AB C D]
Voyez ma réponse. j'espère que c'est ce que vous cherchiez.
@AssaelAzran Merci! mais cela ne semble pas si simple, car je veux mettre à jour doc _termvectors