Elasticsearch 1.x添加时间戳

时间:2017-06-05 23:54:24

标签: elasticsearch indexing timestamp

我在ES 1.5.2工作。我有一个带有文档的索引,带有存储的时间戳值。我想为它添加一个常规字段,它将假定该文档的_timestamp字段的值。我怎样才能做到这一点?我能做到

PUT twitter/_mapping/new_timestamp
{
  "properties": {
    "name": {
      "type": "float"
    }
  }
}

创建一个常规字段,但是如何将所有_timestamp值复制到它?

1 个答案:

答案 0 :(得分:1)

在ES 1.5.2中,您可以使用update by query plugin重新编制文档索引,并将_timestamp字段复制到常规字段。

使用以下命令安装插件后:

bin/plugin -url http://oss.sonatype.org/content/repositories/releases/com/yakaz/elasticsearch/plugins/elasticsearch-action-updatebyquery/1.0.0/elasticsearch-action-updatebyquery-1.0.0.zip install elasticsearch-action-updatebyquery

确保elasticsearch.yml配置文件中的dynamic scripting is enabled,您将能够运行以下命令

POST /twitter/_update_by_query
{
  "script": {
    "inline": "ctx._source.new_timestamp = ctx._timestamp”
  },
  "query": {
    "match_all": {}
  }
}