我使用synonym_index
命令
curl
的索引
我在JAVA API中尝试了以下内容
this.connection.admin().indices().prepareClose("synonym_index").execute().actionGet();
this.connection.admin().indices().prepareUpdateSettings("synonym_index").setSettings(settings).execute().actionGet();
this.connection.admin().indices().prepareOpen("synonym_index").execute().actionGet();
this.connection.admin().indices().prepareDeleteMapping("synonym_index").setType("courses").execute().actionGet();
this.connection.admin().indices().preparePutMapping("synonym_index").setType("courses").setSource(mappings).execute().actionGet();
它不起作用!!索引中的所有文档都被删除!!!!我哪里错了?任何想法??
答案 0 :(得分:0)
如果不重新索引数据,就无法更改映射上的类型。
您可以使用几种策略来重新索引数据 - 一种是删除它,创建映射,然后将其编入索引(这就是您正在做的事情)。
第二个选项是使用类似elasticsearch-exporter(https://www.npmjs.org/package/elasticsearch-exporter)的东西将数据从一个索引复制到另一个索引(因此在新索引上创建所需的设置/映射,然后从旧索引复制数据)新的)。然后,您可以设置将旧索引名称映射到新索引名称的别名。