elasticsearch - puertos - logstash tutorial español
Filtrado por fecha en elasticsearch. (1)
Parece estar funcionando bien para mí:
curl -XPUT localhost:9200/test -d ''{
"settings": {
"index.number_of_shards": 1,
"index.number_of_replicas": 0
},
"mappings": {
"doc": {
"_timestamp": {
"enabled": "true"
},
"properties": {
"cards": {
"type": "integer"
},
"last_updated": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
}
''
curl -XPOST localhost:9200/test/doc/1 -d ''{
"last_updated": "2012-01-01 12:13:14"
}
''
curl -XPOST localhost:9200/test/doc/2 -d ''{
"last_updated": "2013-02-02 01:02:03"
}
''
curl -X POST ''http://localhost:9200/test/_refresh''
echo
curl -X GET ''http://localhost:9200/test/doc/_search?pretty'' -d ''{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"last_updated": {
"gte": "2013-01-01 00:00:00"
}
}
}
}
}
}
''
Estoy intentando buscar todos los elementos que tienen un campo de fecha dentro de un rango, y falla (no devuelve resultados)
La consulta:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"last_updated": {
"from": "2013-01-01 00:00:00"
}
}
}
}
}
}
El mapeo:
{
"my_doctype": {
"_timestamp": {
"enabled": "true"
},
"properties": {
"cards": {
"type": "integer"
},
"last_updated": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
resultados en:
{
took: 1
timed_out: false
_shards: {
total: 1
successful: 1
failed: 0
}
hits: {
total: 0
max_score: null
hits: [ ]
}
}
La misma consulta filtrada por un rango para un campo entero ("tarjetas") con un valor numérico funciona bien. Cambiar la fecha a un inicio muy temprano (1900-01-01 00:00:00) tampoco muestra resultados.
¿Qué estoy haciendo mal?
Por cierto, sé que tengo la marca de hora habilitada en el mapeo, pero ese no es el campo por el que estoy filtrando.