[KIBANA] Problème de scripted field qui n'existe (soit disant) pas dans le mapping


(Lenybernard) #1

Bonjour,

Je tente d'afficher un metric dans kibana me permettant de voir les utilisateurs qui n'ont pas validé leur compte. Le metric est un peu particulier à compter car le fait est qu'il n'y a pas d'évenement disant clairement qu'un utilisateur ne s'est pas validé mais il faut faire la différence entre nombre d'inscription et nombre de validation.

Déjà, avant de vous exposer mon problème, voyez-vous une solution simple pour faire ça ?
J'ai vu qu'il est possible de faire cela avec les "scripted fields". J'en ai donc mis en place un nommé "unvalidated" et j'ai réussi à avoir le bon résultat... temporairement.

Voici le scipt en question:
doc['ctxt_code'].value == 1 ? 1 : doc['ctxt_code'].value == 2 ? -1 : 0

Après avoir recu d'autres enregistrements dans mon elastic (donc certains n'avaient pas les champs pour me permettre de faire le calcul), j'ai eu une erreur un peu étrange dont j'ignore l'origine:

Field [ctxt_code] used in expression does not exist in mappings

et depuis cela ne marche plus... J'ai bien vérifié que le champ ctxt_code sur lequel je faisais le calcul était bien mappé, c'est le cas dans kibana et dans l'api mapping d'elasticsearch...

Un sujet stackoverflow a été créé, aussi si vous voulez m'aider, je vous en serais très reconnaissant !

Merci d'avance,


(Val Crettaz) #2

Hello,

J'ai ajouté un commentaire sur SO concernant votre problème:

Êtes-vous certain que le champ ctxt_code existe dans le mapping de tous vos indices logstash ? Je vois au sommet à droite de l'écran que vous travaillez sur les 7 derniers jours, pouvez-vous donc vous assurer que les indices logstash des 7 derniers jours contiennent bien un champ ctxt_code dans leur mapping ? Est-ce le cas ?


(system) #3