不为失败找理由,要为成功找方法。

Bulk批量插入,自定义id,为什么会有大量文档插入后变成deleted

Elasticsearch | 作者 letesfly | 发布于2021年01月25日 | 阅读数:2356

从数据库读数据,批量插入到es里,id自定义用的数据库的主键值,批量插入后,没有报错,可是用cerebro看,大量文档的状态是deleted,数据库中的主键值百分百没有重复的,不知道为什么会这样?求大神帮忙
ss.jpg 22.jpg
已邀请:

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

这个问题非常好,涉及到更新的本质,先说一下原因:deleted 的出现的原因是:你同步的时候,有相同id的文档数据写入了。也就是说:同一条数据写入了两次,这样在ES里面会做覆盖处理(本质是更新)。
 
而更新的本质是:原有文档标记为已删除,然后再插入一条文档。
 
所以,你可以尝试手动执行一下 force merge 操作,deleted 文档就没有了。
 
或者,你自然等一段时间,待段合并的时机,deleted 文档就没有了。

zmc - ES PAAS、JuiceFS

赞同来自:

你在从mysql写到ES的过程中,mysql有数据更新,之后怎么处理,会同步更新到ES吗?更新的时候就会产生deleted文档了

要回复问题请先登录注册