现有a表和b表,两张mysql数据库的表,需要把两张表的数据取共同字段,合并并导入es中,其中a表共有数据1000条,b表共有数据1200条,a表和b表的主键id都是从1开始递增的,结果导入的时候显示成功导入2200条数据,而实际查询的时候却只显示b表1200条数据。
二 、分析现在导致数据被删除的情况应该是a表和b表的主键id重复,es默认mysql中的 id 为主键 并且document 的_id 和id保持一致, 导致a表中的数据被删除掉了(替换掉了)
三、解决方案 新建一个字段保存数据库的id 主键数据, 查询的时候使用uuid作为id的数据 注意es2.0以后就不支持修改_id映射为其他字段了,es也不支持联合主键之类的
参考链接:
elasticsearch 文档唯一性由多个字段共同确定(类似联合主键),并发下如何确保唯一
elasticsearch 主键生成策略以及如何指定特定字段为id主键列