在ElasticSearch中返回时间戳字段

为什么在能够过滤查询时无法看到_timestamp字段?

以下查询返回正确的文档,但不会返回时间戳本身。如何返回时间戳?

{

"fields": [

"_timestamp",

"_source"

],

"query": {

"filtered": {

"query": {

"match_all": {}

},

"filter": {

"range": {

"_timestamp": {

"from": "2013-01-01"

}

}

}

}

}

}

映射为:

{

"my_doctype": {

"_timestamp": {

"enabled": "true"

},

"properties": {

"cards": {

"type": "integer"

}

}

}

}

样本输出:

{

"took" : 1,

"timed_out" : false,

"_shards" : {

"total" : 1,

"successful" : 1,

"failed" : 0

},

"hits" : {

"total" : 2,

"max_score" : 1.0,

"hits" : [ {

"_index" : "test1",

"_type" : "doctype1",

"_id" : "HjfryYQEQL6RkEX3VOiBHQ",

"_score" : 1.0, "_source" : {"cards": "5"}

}, {

"_index" : "test1",

"_type" : "doctype1",

"_id" : "sDyHcT1BTMatjmUS0NSoEg",

"_score" : 1.0, "_source" : {"cards": "2"}

}]

}

回答:

启用时间戳字段后,默认情况下会对其进行索引但不存储。因此,尽管您可以通过时间戳字段进行搜索和过滤,但是您无法轻松地通过记录来检索它。为了能够检索时间戳字段,您需要使用以下映射重新创建索引:

{

"my_doctype": {

"_timestamp": {

"enabled": "true",

"store": "yes"

},

"properties": {

...

}

}

}

这样,您将能够检索到时间戳记以来的毫秒数。

以上是 在ElasticSearch中返回时间戳字段 的全部内容, 来源链接: utcz.com/qa/434782.html

回到顶部