Elasticsearch索引上次更新时间

有没有一种方法可以从ElasticSearch中检索有关特定索引的最新更新时间的信息?我的目标是能够知道什么时候是最后一次在索引中插入/更新/删除任何文档。如果无法做到这一点,是否可以在索引修改请求中添加一些内容,以便稍后提供此信息?

回答:

您可以从_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

}

以上是 Elasticsearch索引上次更新时间 的全部内容, 来源链接: utcz.com/qa/435304.html

回到顶部