重新索引在ElasticSearch中添加新字段无效(PHP客户端)

时间:2018-12-14 10:45:58

标签: php elasticsearch

elasticsearch中有一个索引,我想添加一些新的映射/字段...

我正在使用elasticsearch php客户端。

我的步骤:

1-使用新的映射/字段创建TMP索引-确定

2-从OLD索引重新索引到TMP索引-确定(新索引具有新字段)

3-将TMP索引从旧索引重新索引为旧索引- KO (我丢失了新的映射/字段,但不知道为什么)

4-删除TMP索引-确定

5-在这里,我的OLD索引(好)和OLD映射(坏)

如何在原始索引中包含新的映射/字段?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在第3步中,您不会松散新的映射,只是从开始和重新编制索引中就没有它,不要复制在重新编制索引之前需要在OLD索引上更新映射的映射。

  1. 创建带有映射的TMP
  2. 重新索引旧---> TMP
  3. 删除OLD并创建带有映射的OLD
  4. 删除TMP
  5. 在这里您将拥有具有新映射的OLD索引

一切都很好!

如果查看有关重新索引的文档 https://www.elastic.co/guide/en/elasticsearch/reference/7.2/docs-reindex.html

有重要警告:

  

Reindex不会尝试设置目标索引。它不是   复制源索引的设置。 您应该设置   目标索引在运行_reindex操作之前,包括   设置映射,分片计数,副本等。

其他解决方案是使用别名。 https://www.elastic.co/guide/en/elasticsearch/reference/7.2/indices-aliases.html