0
votes

comment mettre à jour dynamiquement les termes doc en utilisant un autre analyseur?

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]


4 commentaires

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


3 Réponses :


0
votes

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.


0 commentaires

0
votes

Oui, c'est possible, mais vous devrez réindexer votre contenu, sinon vos recherches ne fonctionneront pas comme prévu.

Instructions pas à pas

  1. Configurez votre analyseur dans les paramètres de votre index (s'il s'agit d'un analyseur personnalisé)
  2. Fermez votre index
  3. Ajustez votre mappage en spécifiant l ' analyseur du champ et si nécessaire également le search_analyzer
  4. Rouvrez votre index
  5. Exécutez POST / _ update_by_query

2 commentaires

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é.



0
votes

Sur la base de votre dernière mise à jour, vous pouvez utiliser l'api update .

Update Api

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]"
        }
    }
}


0 commentaires