2017-08-30 9 views
0

J'essaie d'ajouter un champ de longueur de chaîne à un index. Idéalement, j'aimerais utiliser la fonction de script kibana car je peux 'ajouter' ce champ plus tard mais je continue à obtenir un null_pointer_exception avec le code suivant ... J'essaye de trier dans une visualisation basée sur la longueur des champs.Ajouter un champ/une longueur de chaîne à l'événement logstash

doc['field'].value ? doc['field'].length() : 0 

Est-ce correct?

je pensais que c'était parce que mon champ n'est pas toujours définie (données rares), mais j'ai ajouté le ?:0 pour lutter contre ce (qui ne fonctionne pas)

Toutes les idées?

+0

Désolé, je ne comprends pas. Où avez-vous mis ce code? – whites11

+0

https://www.elastic.co/guide/fr/kibana/current/scripted-fields.html – geekscrap

Répondre

1

Vous pouvez définir un champ scénarisé dans Kibana, de type int, langue sans douleur, et essayez ceci:

return (doc['field'].value != null? doc['field'].value.length(): 0); 
+0

Merci! Où pouvez-vous trouver une référence pour quelles propriétés (valeur, longueur) l'objet doc prend-il en charge? – geekscrap

+0

Je recommanderais docs indolore: https://www.elastic.co/guide/en/elasticsearch/painless/master/index.html, https://www.elastic.co/guide/en/elasticsearch/reference/ master/modules-scripting-indolore.html. La syntaxe est groovy style: http://groovy-lang.org – Imma