Existe-t-il un moyen d'ajouter un nouveau champ à tous les documents d'un index dans kibana? Par exemple, supposons que j'ai l'âge de tous les utilisateurs de mon kibana élastique. Et je souhaite les séparer en deux catégories: Moins de 50 et plus de 50 . Ainsi, s'il existe un utilisateur âgé de 23 ans , il doit avoir une valeur de catégorie comme Moins de 50 .

0
UMA MAHESWAR 22 févr. 2021 à 13:36

2 réponses

Meilleure réponse

J'aimerais ajouter une autre option à celle proposée par @dravit. Si vous ne souhaitez pas modifier vos documents et que vous n'avez besoin que de ce champ supplémentaire pour exécuter l'analyse dans Kibana, vous pouvez ajouter un champ scripté à votre modèle d'index, de sorte que la valeur category soit calculée au moment de la requête.

Réf: https://www.elastic.co/guide/ fr / kibana / current / scripted-fields.html

Le script de votre champ scripté serait quelque chose d'aussi simple que

doc['age'].value > 50 ? "Above 50" : "Below 50"
1
glenacota 22 févr. 2021 à 16:09

Oui, vous pouvez. Ce que vous voulez, ce sont des mises à jour par requête et des scripts sans douleur .

Ils vous donneront la flexibilité de faire quelque chose de ce genre

POST /users/string/_update_by_query
{
"script": "ctx._source.category = ctx._source.age > 50 ? "Above 50" : "Below 50"
}
1
dravit 22 févr. 2021 à 11:34