Hola
Quiero crear un campo calculado en Kibana, pero no me deja recortarlo para dejar solo la fecha, estoy tratando de hacer esto y da error:
def fecha = doc['timestamp'].value;
return fecha.substring(0,9);
Saludos,
Hola
Quiero crear un campo calculado en Kibana, pero no me deja recortarlo para dejar solo la fecha, estoy tratando de hacer esto y da error:
def fecha = doc['timestamp'].value;
return fecha.substring(0,9);
Saludos,
Hola Osvaldo, bienvenido a la comunidad Elastic!!
Un timestamp no es una cadena de texto sino una fecha, lo más seguro es utilizar un método que formatea la fecha de la forma que más te convenga.
Usando elasticsearch directamente, el juego de datos de ejemplo de datos de vuelos, y la consola de Kibana, puedes ejecutar esta consulta con un campo de tipo script
. El script en tu index pattern sería el contenido de source
.
POST kibana_sample_data_flights/_search?size=2
{
"_source": "timestamp",
"script_fields": {
"fecha": {
"script": {
"lang": "painless",
"source": "return doc['timestamp'].value.format(DateTimeFormatter.ofPattern('yyyy-MM-dd'))"
}
}
}
}
Esto devolverá algo como esto:
{
"took" : 2,
"timed_out" : false,
"_shards" : {...},
"hits" : {
"total" : {...},
"max_score" : 1.0,
"hits" : [
{
"_index" : "kibana_sample_data_flights",
"_type" : "_doc",
"_id" : "FjPbA3IB7IYpURlZTGuh",
"_score" : 1.0,
"_source" : {
"timestamp" : "2020-05-04T00:00:00"
},
"fields" : {
"fecha" : [
"2020-05-04"
]
}
},
{
"_index" : "kibana_sample_data_flights",
"_type" : "_doc",
"_id" : "FzPbA3IB7IYpURlZTGuh",
"_score" : 1.0,
"_source" : {
"timestamp" : "2020-05-04T18:27:00"
},
"fields" : {
"fecha" : [
"2020-05-04"
]
}
}
]
}
}
Donde puedes ver qué valores devuelve para fecha
. Dispones de una guía muy completa sobre el uso de pechas en painless
aqui.
Muchas gracias!!! voy a probar
Hola jsanz
Ya estoy avanzando... ahora tengo este problema
ZonedDateTime zdt1 = ZonedDateTime.of(
year, month, day, hour, minutes, seconds, nanos, ZoneId.of('UTC-06:00'));
// en este punto ya arme en la variable zdt1 una fecha a partir de un string
// en la siguiente linea estoy tratando de recuperar el campo timestamp para posteriormente hacer la diferencia en dias... pero el compilador me da error en el ".value"
ZonedDateTime zdt2 = doc['timestamp'].value;
long differenceInDays = ChronoUnit.DAYS.between(zdt1, zdt2);
¿qué error?
Listo ... solucionado ... gracias
Genial!
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.