ElasticSearch 同步数据变少了

一、前言

这几天对接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为1,deleted也为1.

结论:更新(重新写入,数据内容不变)实际上原来老的文档标记为删除状态,并新增一个新的文档,版本号为原来文档版本号+1。删除文档也同样如些,先标记deleted逻辑删除状态,ES会在适当的时候清除已标记为deleted的文档。

至于我们的问题是因为开始是使用数据库的自增ID做为ES的ID(文档内容中也含有ID),但我们数据库的ID是有断层的情况(测试环境做了物理删除,有跳跃的情况),然后ES就凌乱了,后面不管3721,把ID换成ES内部自增ID就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大规模语言模型--中文 LLaMA和Alpaca

中文LLaMA 尽管 LLaMA 和 Alpaca 在 NLP 领域取得了重大进展, 它们在处理中文语言任务时, 仍存在一些局限性。这 些原始模型在字典中仅包含数百个中文 tokens (可以理解为单词),导致编码和解码中文文本的效率受到了很大 影响。 之前已经对…

数据结构--队列

一、队列是什么 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,队列是一种操作受限制的线性表。进行插入操作的端称为队尾&…

GEO生信数据挖掘(一)数据集下载和初步观察

检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 GEOquery 简介 安装并加载GEOquery包 getGEO函数获取数据(联网下载) 更换下载数据源 对数据集进行初步观察处理 GEOquery 简介 GEOquery是一个…

闲话Python编程-循环

1. for循环 Python的for语句有点特别,只能对序列和字符串进行处理,序列自然包括list、tuple和range对象。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 练习for语句def loop_for():names [Tom, Jack, Black]for name in names:print(name)s ab…

9.1 运用API创建多线程

在Windows平台下创建多线程有两种方式,读者可以使用CreateThread函数,或者使用beginthreadex函数均可,两者虽然都可以用于创建多线程环境,但还是存在一些差异的,首先CreateThread函数它是Win32 API的一部分&#xff0c…

第1篇 目标检测概述 —(4)目标检测评价指标

前言:Hello大家好,我是小哥谈。目标检测评价指标是用来衡量目标检测算法性能的指标,可以分为两类,包括框级别评价指标和像素级别评价指标。本节课就给大家重点介绍下目标检测中的相关评价指标及其含义,希望大家学习之后…

【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

一、通知概述 通知简介 应用可以通过通知接口发送通知消息,终端用户可以通过通知栏查看通知内容,也可以点击通知来打开应用。 通知常见的使用场景: 显示接收到的短消息、即时消息等。显示应用的推送消息,如广告、版本更新等。显示…

keepalived的vip实现nginx节点的主备

nginx wget http://nginx.org/download/nginx-1.18.0.tar.gz tar zxvf nginx-1.18.0.tar.gzyum install -y gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel libnl3-develcd nginx-1.18.0 mkdir -p /usr/local/nginx #需要使用https,在编译时启用…

【中秋国庆不断更】OpenHarmony多态样式stateStyles使用场景

Styles和Extend仅仅应用于静态页面的样式复用,stateStyles可以依据组件的内部状态的不同,快速设置不同样式。这就是我们本章要介绍的内容stateStyles(又称为:多态样式)。 概述 stateStyles是属性方法,可以根…

机器人中的数值优化(十九)—— SOCP锥规划应用:时间最优路径参数化(TOPP)

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

Vue3父子组件数据传递

getCurrentInstance方法 Vue2中,可以通过this来获取当前组件实例; Vue3中,在setup中无法通过this获取组件实例,console.log(this)打印出来的值是undefined。 在Vue3中,getCurrentInstance()可以用来获取当前组件实例…

SoloX:Android和iOS性能数据的实时采集工具

SoloX:Android和iOS性能数据的实时采集工具 github地址:https://github.com/smart-test-ti/SoloX 最新版本:V2.7.6 一、SoloX简介 SoloX是开源的Android/iOS性能数据的实时采集工具,目前主要功能特点: 无需ROOT/越狱…

新型信息基础设施IP追溯:保护隐私与网络安全的平衡

随着信息技术的飞速发展,新型信息基础设施在全球范围内日益普及,互联网已经成为我们社会和经济生活中不可或缺的一部分。然而,随着网络使用的增加,隐私和网络安全问题也引发了广泛关注。在这个背景下,IP(In…

简单工厂模式~

我们以生产手机作为应用场景展开讲解! 手机是一个抽象的概念,它包含很多的品牌,例如华为,苹果,小米等等,因此我们可将其抽象为一个接口,如下所示: public interface tel {void pro…

Docker的学习记录

Docker是一个被广泛使用的开源容器引擎,基于Go语言,遵从Apache2.0协议开源。 docker的三个概念:容器、镜像和仓库。 镜像(Image):镜像是Docker中的一个模板。通过 Docker镜像 来创建 Docker容器&#xff…

angular 在vscode 下的hello world

Angulai 是google 公司开发的前端开发框架。Angular 使用 typescript 作为编程语言。typescript 是Javascript 的一个超集,提升了某些功能。本文介绍运行我的第一个angular 程序。 前面部分参考: Angular TypeScript Tutorial in Visual Studio Code 一…

详细介绍Redis RDB和AOF两种持久化方式

RDB持久化 RDB是Redis的一种快照持久化方式,它将内存中的数据集都写入磁盘,生成一个RDB文件,RDB文件是一个经过压缩的二进制文件(通常叫做数据快照),可以用于备份、迁移和恢复数据。 RDB的优点是快速、紧…

Java之线程池的详细解析

1. 线程池 1.1 线程状态介绍 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程 状态被定义在了java.lang.Thread.Stat…

【并发编程】ThreadPoolExecutor任务提交与停止流程及底层实现【新手探索版】

文章目录 1. ThreadPoolExecutor任务提交2. 线程池状态[这部分是难点呀]2.1. addWorker添加worker线程2.2. 内部类Worker2.3. runWorker():执行任务2.4. getTask():获取任务2.5. processWorkerExit():worker线程退出 3.3. 关闭线程池3.3.1. shutdown方法3.3.2. shutdownNow方法…

密码技术 (2) - 公钥密码

一. 前言 公钥密码的秘钥分为加密秘钥和解密秘钥,加密秘钥成为公钥,解密秘钥成为私钥,公钥和私钥的成对存在的,一对公钥和私钥称为密钥对。发送消息时,发送者用公钥对消息进行加密,接收者用私钥进行解密。从…