你不会是程序猿吧?

仅新添加一个字段,怎么快速索引并将原索引合并过来?

Elasticsearch | 作者 space_time | 发布于2019年10月22日 | 阅读数:1440

原想法是:
假设需要新添加一个字段,将原索引old给一个别名A,先新建了一个索引new,将new索引好后,将其别名命名为A。
但是这样得重新索引所有数据,效率比较低。怎么可以更好的利用原有数据?
已邀请:

God_lockin

赞同来自: space_time Saber5

旧索引old,新索引new,给new别名current_writer,给new和old两个都标记别名current_reader,然后通过current_writer写数据,通过current_reader进行搜索

God_lockin

赞同来自:

旧的数据可能会被淘汰吗?会的话就让他按时被淘汰就好了
 
如果不可以的话,夜深人静的时候reindex也不失一个办法,reindex的接口可以传入比如多线程、router、query、size等等各种参数,提高效率还是可以的

God_lockin

赞同来自:

其实还有种方式,就是你给旧索引建一个index template,然后通过修改template的方式往旧的索引里指定新的字段的mapping
 
不过这样有个制约就是如果你想改当前存在的字段的mapping是不可以的

zqc0512 - andy zhou

赞同来自:

别名搞成一样。

要回复问题请先登录注册