自助建手机网站免费,深圳市建网站,中国金融互联网协会官网,火车头wordpress发布模块4.9一、前言
这几天对接ES遇到几个坑#xff0c;我们将一张库存表同步到ES发现Docs Count和我们表中的数据对不上#xff0c;需要加上Docs deleted才对得上#xff0c;也不知道批量写入数据为什么有些数据就会成 Docs deleted。
二、ID和版本号
ES中每一个Document都有一个_…一、前言
这几天对接ES遇到几个坑我们将一张库存表同步到ES发现Docs Count和我们表中的数据对不上需要加上Docs deleted才对得上也不知道批量写入数据为什么有些数据就会成 Docs deleted。
二、ID和版本号
ES中每一个Document都有一个_id和_version。 1、_id文档的唯一ID。
有两种方式生成第一种是ES自动生成Base64编码20位的唯一ID.另外一种是手动指定ID比如来自数据库的自增ID或UUID但要确保是唯一的。
2、_version文档的版本号。
新增 _version为1 更新 _version变为2 通过 get /store_stock/_stats,可以发现count为1deleted也为1. 结论更新重新写入数据内容不变实际上原来老的文档标记为删除状态并新增一个新的文档版本号为原来文档版本号1。删除文档也同样如些先标记deleted逻辑删除状态ES会在适当的时候清除已标记为deleted的文档。
至于我们的问题是因为开始是使用数据库的自增ID做为ES的ID文档内容中也含有ID但我们数据库的ID是有断层的情况测试环境做了物理删除有跳跃的情况然后ES就凌乱了后面不管3721把ID换成ES内部自增ID就好了。