Время последнего обновления индекса 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

Как вы увидите, у вас есть информация по индексам, коммитам и/или флешам, которые вы можете использовать, чтобы увидеть, изменился ли индекс (или нет).

Я надеюсь, что это поможет кому-то.