Есть ли способ получить информацию ElasticSearch о том, когда последний индекс был обновлен? Моя цель - рассказать, когда в последний раз были вставлены/обновлены/удалены какие-либо документы в индексе. Если это невозможно, есть ли что-то, что я могу добавить в мои запросы на изменение индекса, которые позже предоставят эту информацию?
Время последнего обновления индекса Elasticsearch
Ответ 1
Вы можете получить время модификации из _ timestamp
Чтобы упростить возврат метки времени, вы можете настроить Elasticsearch для ее сохранения:
curl -XPUT "http://localhost:9200/myindex/mytype/_mapping" -d'
{
"mytype": {
"_timestamp": {
"enabled": "true",
"store": "yes"
}
}
}'
Если я вставляю документ и затем запрашиваю его, я получаю метку времени:
curl -XGET 'http://localhost:9200/myindex/mytype/_search?pretty' -d '{
> fields : ["_timestamp"],
> "query": {
> "query_string": { "query":"*"}
> }
> }'
{
"took" : 7,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "myindex",
"_type" : "mytype",
"_id" : "1",
"_score" : 1.0,
"fields" : {
"_timestamp" : 1417599223918
}
} ]
}
}
обновление существующего документа:
curl -XPOST "http://localhost:9200/myindex/mytype/1/_update" -d'
{
"doc" : {
"field1": "data",
"field2": "more data"
},
"doc_as_upsert" : true
}'
Повторное выполнение предыдущего запроса показывает мне обновленную временную метку:
"fields" : {
"_timestamp" : 1417599620167
}
Ответ 2
Я не знаю, есть ли люди, которые ищут эквивалент, но вот обходной путь с использованием статистики осколков для > пользователей Elasticsearch 5: curl XGET http://localhost:9200/_stats?level=shards
Как вы увидите, у вас есть информация по индексам, коммитам и/или флешам, которые вы можете использовать, чтобы увидеть, изменился ли индекс (или нет).
Я надеюсь, что это поможет кому-то.