繁体   English   中英

Elasticsearch-重新索引相同的索引名称

[英]Elasticsearch--reindexing to the same index name

我有几个旧索引想要更改其映射。 现在,我需要将旧的映射转换为新的映射。 我一直在阅读关于stackoverflow

这个

这个

还有这个

但是我认为它们并不是我所提问题的确切答案。

其中许多使用不同的索引名,因此该操作更容易,但是由于进行了设置,我们使用了更粗略的卷曲数据的方式,这需要确切的索引名。

现在我的问题是:什么是将旧索引(或多个索引)重新索引为新索引的好方法

恩。

我当前的地址是' http://地址到服务器:端口/群集名称/索引名称 '

我希望能够重新索引旧数据,以便在我curl -XGET 'http://address-to-server:port/cluster-name/index-name'它将在新映射中提供旧数据(一些其他字段,一些已修改)

作为我之前的回答,您可以使用重新索引插件来执行映射更改操作

https://github.com/codelibs/elasticsearch-reindexing

并且还要通过检查样本输入数据来确保您的新映射有效并且将采用您的旧数据

可以使用以下方法重新索引数据。

  1. 将数据从原始索引传输到某个虚拟索引。 您可以使用以下命令

    elasticsearch-reindex -f "http://localhost:9200/original_index/type/" -t "http://localhost:9200/dummy_index/type/"

    该命令将在终端中使用。

  2. 删除原始索引。 DELETE /original_index

  3. 使用与原始索引相同的名称创建索引,并更改映射。
  4. 将数据从虚拟索引移回原始索引

    elasticsearch-reindex -f "http://localhost:9200/dummy_index/type/" -t "http://localhost:9200/original_index/type/"

通过这种方式,您可以使用新的映射还原数据。

注意:您需要为此安装npm插件

阅读此内容以安装elasticsearch-reindex命令。

希望这可以帮助。

对于那些正在寻找运行reindex脚本来更新相同索引的人。 基本上,“重新索引到同一索引”是一种“通过查询更新”( https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-update-by-query.html )。 您可以使用与reindex相同的script子句,并将其应用于查询结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM