我有一个问题,在ElasticSearch中只重新索引部分索引数据。
使用PHP的ElasticSearch客户端。
假设我有一个索引myindex
,类型为type1
和type2
。
现在type2
中的一些字段发生了变化,我需要更改Map。
在阅读了他们的文档后,我想我可以通过创建一个新类型和创建一个别名来摆脱困境,但不幸的是,似乎你不能为类型创建别名,它只适用于索引。
然后,我想为newtype2
创建一个新的临时Map,将数据从type2
复制到newtype2
并删除type2
。
但是现在我找不到任何方法来重命名类型。
3条答案
按热度按时间brjng4g31#
不,不能重命名类型。
读取this article。
ev7lccsx2#
我想扩展marcostvz's answer。
如果你真的希望现有的索引有类型名称,即使它不能直接完成,你可以做一些其他的索引和重新索引的帮助。
1.创建临时索引。
1.将旧类型的原始索引复制到新类型的临时索引。
1.重新创建(删除并放置)原始索引。
1.将临时索引复制到原始索引。
1.删除临时索引。
在运行代码时,我遇到了数据在过程中丢失的问题。在命令之间添加一个小中断(确切地说是
sleep 5
)解决了这个问题。holgip5t3#
重命名类型的最接近的方法是使用新索引(具有新类型):
将flb_type重命名为_doc的示例: