我在ES 1.5.2工作。我有一个带有文档的索引,并存储了时间戳值。我想在其中添加一个常规字段,该字段将假设该文档的_timestamp字段值。我怎样才能做到这一点?我可以做
PUT twitter/_mapping/new_timestamp
{
"properties": {
"name": {
"type": "float"
}
}
}
创建一个常规字段,但是如何通过所有_timestamp值复制到它?
在ES 1.5.2中,您可以使用查询插件的更新来重新索引您的文档并将_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
配置文件中启用了动态脚本,您将能够运行以下命令
POST /twitter/_update_by_query
{
"script": {
"inline": "ctx._source.new_timestamp = ctx._timestamp”
},
"query": {
"match_all": {}
}
}