首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ES批量索引显示删除的文档很少

基础概念

Elasticsearch(简称ES)是一个基于Apache Lucene的开源搜索引擎。它提供了一个分布式、多租户能力的全文搜索引擎,具有HTTP Web界面和基于JSON的文档。批量索引(Bulk API)允许用户在一个请求中执行多个索引、更新、删除等操作。

相关优势

  1. 性能提升:通过批量操作,可以显著减少网络开销和I/O操作,从而提高索引速度。
  2. 减少资源消耗:批量操作减少了服务器的负载,提高了系统的整体性能。
  3. 简化代码:批量操作使得代码更加简洁,易于维护。

类型

ES批量索引主要包括以下几种类型:

  1. 索引操作:将文档添加到索引中。
  2. 更新操作:更新现有文档的部分内容。
  3. 删除操作:从索引中删除文档。

应用场景

批量索引常用于以下场景:

  1. 数据导入:将大量数据快速导入到ES中。
  2. 数据更新:批量更新文档的部分字段。
  3. 数据清理:批量删除不再需要的文档。

问题分析

如果ES批量索引显示删除的文档很少,可能有以下原因:

  1. 删除操作未正确执行:可能是由于删除条件不正确或删除操作本身存在问题。
  2. 索引延迟:ES的索引操作可能会有延迟,导致删除操作未能立即显示效果。
  3. 版本冲突:在并发操作中,可能会出现版本冲突,导致删除操作失败。

解决方法

  1. 检查删除条件:确保删除条件正确无误。
  2. 查看日志:检查ES的日志文件,查看是否有删除操作失败的记录。
  3. 增加刷新间隔:可以通过设置refresh_interval参数来增加刷新间隔,确保删除操作能够及时显示效果。
  4. 处理版本冲突:在并发操作中,可以通过设置适当的版本号来避免版本冲突。

示例代码

以下是一个简单的批量索引和删除操作的示例代码:

代码语言:txt
复制
from elasticsearch import Elasticsearch, helpers

es = Elasticsearch()

# 批量索引操作
actions = [
    {
        "_index": "my_index",
        "_id": 1,
        "_doc": {"title": "Document 1"}
    },
    {
        "_index": "my_index",
        "_id": 2,
        "_doc": {"title": "Document 2"}
    }
]

helpers.bulk(es, actions)

# 批量删除操作
delete_actions = [
    {
        "_op_type": "delete",
        "_index": "my_index",
        "_id": 1
    }
]

helpers.bulk(es, delete_actions)

参考链接

通过以上方法,可以更好地理解和解决ES批量索引显示删除文档很少的问题。

相关搜索:删除不属于索引的文档仅当缺少文档时,Elasticsearch中的批量索引删除非索引字段上的MongoDB文档ES中的聚合是否适用于es索引中的所有文档(使用查询匹配全部如何在Elasticsearch中删除多个索引的文档在ElasticSearch 6+中批量删除文档中的属性添加未在ElasticSearch索引中显示的新文档如何在Redisearch中删除索引中的所有文档?Elasticsearch curator删除整个索引,而不是较旧的文档当我在Elasticsearch 2.2中恢复并同时索引更多文档时,ES的行为如何?删除Python 3.x中elasticsearch索引中的所有文档我在不删除索引的情况下从elasticsearch的索引中删除所有文档时遇到了问题在kibana中,如何在不从开发工具删除索引的情况下删除索引中的所有文档如何使用delete_by_query接口删除索引中包含特定字段的所有文档?突出显示(不删除)单词文档中的重复句子或短语已更改数据框行索引,但旧行索引仍显示在新行索引的列名上方。如何删除它?旧的已删除MongoDB文档的_id是否可以为同一集合中的未来文档重新显示/重新生成?我正在尝试将Xml文档转换为java obj.Its,显示参数serviceprovider的数组索引越界异常。我是第一次在ES上工作。我正在尝试将一个批量json文件上传到java中的一个新的Elasticsearch索引中,但是我收到了错误。在任何情况下,Elasticsearch是否会删除所有使用delete_by_query的文档,除非查询显示为全部匹配?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ES 增删改(关于文档操作)以及批量操作

PUT logs/_create/2 { "Level":"Warn", "Content":"111" } 在指定操作是created时,如果重复插入会抛异常 2、delete 删除记录 es...中删除是软删除,每条记录会维护一个版本号,通过变更状态和版本来标记删除.具体删除生效时间参数值可配置....":"Error" } } 这样实现了对id为2记录Level字段更新.也可以通过update更新全部字段,这里不做讲解. 4、指定执行失败是否输出错误信息(这里常用于批量操作) PUT logs...filter_path=items.*.error { "Level":"Warn", "Content":"111" } 这里如果id为3记录不存在会输出"{}",存在则输出异常信息,常用于批量操作.... 5、_bulk批量操作 _bulk相对于上面的单条语句操作优势是,使用了更少内存.但是其可读性很差.

1.7K10
  • 使用 Delete By Query API 方式删除ES索引数据

    一、前言| ES作为现今最流行搜索存储库,我们需要定期去清理ES集群数据以保证集群处在一个最佳负载状态,那么如何去删除这些数据呢,我们今天来介绍一种比较常见通过Delete By Query...实际是批量删除数据意思 功能:根据特定查询条件对ES相关索引中某些特定文档进行批量删除。...当我们再次搜索时候,会搜索全部然后过滤掉有删除标记文档。因此,该索引所占空间并不会随着该API操作磁盘空间会马上释放掉,只有等到下一次段合并时候才真正被物理删除,这个时候磁盘空间才会释放。...,导致索引特别大,删除数据删除索引形式进行,只能在原来索引上进行数据删除操作。...五、总结 ES删除数据共有如下几种方式: 1,删除指定文档:指定索引–>类型–>id方式对文档进行删除 DELETE /index/type/1 2,批量删除:Delete_by_query

    38.7K111

    AI办公自动化:批量删除word文档方括号及其内容

    Word文档中有很多注释,比如[52] ,现在希望批量删除这些方括号及其里面的内容。 在腾讯元宝中输入提示词: 批量删除word文档[] 符号和[] 里面的内容,该怎么做?...元宝回复: 要在Word文档批量删除[]符号及其中内容,你可以使用以下几种方法。这里提供两种常用方法: 方法一:使用“查找和替换”功能(推荐) 打开你Word文档。...Word将查找文档所有[]符号及其中内容,并将它们替换为空,即删除它们。 完成替换后,关闭“查找和替换”对话框。 注意:在执行此操作之前,建议先备份你文档,以防万一出现误删或其他问题。...方法二:使用宏(VBA脚本) 如果你熟悉VBA(Visual Basic for Applications),你可以编写一个简单宏来批量删除[]符号及其中内容。...多次尝试后发现先输入查找内容:\[*\],然后需要点击:更多, 然后选择:使用通配符 就可以完美的批量删除特定符号和里面的内容了。 在WPS里面是点击高级搜索,然后选择:使用通配符

    44710

    Elastic学习之旅(4)ES文档CRUD操作

    上一篇:ES必备基础概念一览 ES文档CRUD介绍 和MongoDB一样,文档CRUD是我们学习ES必备操作,下图展示了ES文档CRUD概要: 从上图可以知道,ES文档除了CRUD外,还多了一个...如果文档已存在,旧文档会先被删除,新文档会被索引,同时版本号+1。 因此,Index操作更像是我们所说“AddOrReplace”。...通过put {index}/_doc/{id}即可完成Index操作,这里我们以刚刚get示例为基础,修改id=1userusername,由于id=1记录已存在,会先删除文档,再索引文档:...Delete文档 可以通过 delete {index}/_doc/{id}来完成文档删除操作。 可以看到,返回结果状态显示为deleted,则表示删除成功。...这时如果再次查询这个文档,就会显示找不到了: 批量操作API(Bulk API) ES提供了一个Bulk API,支持在一次API调用中,对不同索引进行不同类型(如Index、Create、Update

    14510

    Python Elasticsearch批量操作客户端

    使用方法 1 3.1 配置ES服务器信息 1 3.2 配置ES操作数据 2 3.2.1 批量插入数据 2 3.2.2批量更新文档字段值|新增字段值 4 3.2.3 批量删除 7...批量插入数据 批量更新文档字段值 批量新增文档字段值 批量删除数据 批量复制数据 批量去除冗余数据 2.测试环境 Win7 64位 Python 3.3.2...,批量更新文档批量删除批量复制时ES主机信息 [SRCHOSTCONFIG]:该节点下配置需要复制ES数据数据源主机信息,即从该节点下ES主机复制到[DESTHOSTCONFIG]下主机,...注意: 不使用size参数的话,ES默认仅仅会返回10条记录,程序仅会对返回记录数进行更新,所以,如果需要更新记录数大于10条,需要通过"size"参数,显示控制ES返回记录数,比如“需要更新记录数有...,一定要填写 这里实现逻辑是这样:先查询,然后删除查询出来全部记录,最后再把不重复记录写回到ES中。

    1.9K10

    一起学Elasticsearch系列-写入和检索调优

    生产经常面临写入可以分为两种情况: 高频低量:高频创建或更新索引文档,一般发生在 C 端业务场景下。 低频高量:一般情况为定期重建索引批量更新文档数据。...默认情况下,Elasticsearch 每秒定期刷新索引,如果没有搜索流量或搜索流量很少(例如每 5 分钟不到一个搜索请求),可以适当调大此参数值。...当检索请求数量很少时候,可以减少甚至完全删除副本分片,关闭segment自动创建以达到高效利用内存目的,因为副本存在会导致主从之间频繁进行数据同步,大大增加服务器资源占用。...单次查询10条文档 好于 10次查询每次一条 批量请求将产生比单文档索引请求更好性能。...首先尝试一次索引 100 个文档,然后是 200 个,然后是 400 个等。在每次基准测试运行中,批量请求中文档数量翻倍。当索引速度开始趋于平稳时,就可以获得已达到数据批量请求最佳大小。

    20911

    Elasticsearch系列(2):Kibana安装与基本REST API

    简介 Kibana是一个针对Elasticsearch开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引数据进行交互操作,使用Kibana能执行高级数据分析,并能以图表、表格和地图形式查看数据...3, "number_of_replicas": 2 } } } 创建索引显示指定映射信息 显示指定字段数据类型: PUT /user { "mappings":...删除索引 请求: DELETE /user 响应: { "acknowledged" : true } 更多索引操作可以参考官网:Index APIs 文档操作 创建文档 请求: POST /user..._seq_no:分配给文档以进行索引操作序列号。序列号用于确保文档旧版本不会覆盖新版本。 _primary_term:为索引操作分配给文档主要术语。...可以使用Bulk API来完成文档批量操作,Bulk API每一个命令占用两行,每行都应该以\r\n结束。

    83720

    Elasticsearch 中为什么会有大量文档插入后变成 deleted?

    问题1:elasticsearch-head 插件索引文档显示结果不一致? ? 一个:3429 ,一个:5291,什么意思?...问题2:批量写入 ES 数据,大量文档状态变成 deleted,什么原因?...数据库读数据,批量插入到es里,id自定义用数据库主键值,批量插入后,没有报错,可是用cerebro看,大量文档状态是deleted,数据库中主键值百分百没有重复,不知道为什么会这样? ?...2、文档版本号_version 在 Mysql 中插入一条记录,我们直观显示是一行记录。而 Elasticsearch 是文档型搜索引擎,我们直观看到是一条 json 记录。...有的,借助删除索引删除索引全部数据。 3.2 索引删除本质 不同于删除文档删除索引意味着删除其分片、映射和数据。 索引删除本质:物理删除数据。

    2.9K30

    好玩ES---第一篇之安装和基本CRUD

    安装 传统方式安装 Docker方式安装 compose方式安装 核心概念 索引 映射 文档 基本操作 索引 创建 查询 删除 映射 创建 查询 文档 添加文档 查询文档 删除文档 更新文档 批量操作...将当前用户变成es文件拥有者 ---- # 7.从新启动ES服务 如果启动显示Killed,是因为esjvm配置文件中,配置了1g堆大小,如果没有足够空间分配,es就启动不起来 解决办法...一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索引文档进行索引、搜索、更新和删除时候,都要使用到这个名字。 映射 映射是定义一个文档和它所包含字段如何被存储和索引过程。...一条文档是一个可被索引最小单元。ES文档采用了轻量级JSON格式数据来表示。...,update是更新文档,delete是删除文档 说明:批量时不会因为一个失败而全部失败,而是继续执行后续操作,在返回时按照执行状态返回!

    1.2K20

    ES分词器

    然而它不仅仅是存储,还会索引(index)每个文档内容使之可以被搜索。在ES中,你可以对文档(而非成行成列数据)进行索引、搜索、排序、过滤。 ES使用JSON作为文档序列化格式。...} 8.2 基本操作 1) 创建索引 格式: PUT /索引名称 举例: PUT /es_db 2) 查询索引 格式: GET /索引名称 举例: GET /es_db 3) 删除索引 格式: DELETE...6) 查询文档 格式: GET /索引名称/类型/id 举例: GET /es_db/_doc/1 7) 删除文档 格式: DELETE /索引名称/类型/id 举例: DELETE /es_db/_doc...sort=age:desc SQL: select * from student order by age desc 11.文档批量操作 1.批量获取文档数据 批量获取文档数据是通过_mgetAPI...,则是创建 如果原文档存在,则是替换(全量修改原文档) (3)批量删除delete POST _bulk {"delete":{"_index":"article", "_type":"_doc", "

    60220

    ES分词器

    然而它不仅仅是存储,还会索引(index)每个文档内容使之可以被搜索。在ES中,你可以对文档(而非成行成列数据)进行索引、搜索、排序、过滤。 ES使用JSON作为文档序列化格式。...} 8.2 基本操作 1) 创建索引 格式: PUT /索引名称 举例: PUT /es_db 2) 查询索引 格式: GET /索引名称 举例: GET /es_db 3) 删除索引 格式: DELETE...6) 查询文档 格式: GET /索引名称/类型/id 举例: GET /es_db/_doc/1 7) 删除文档 格式: DELETE /索引名称/类型/id 举例: DELETE /es_db/_doc...sort=age:desc SQL: select * from student order by age desc 11.文档批量操作 1.批量获取文档数据 批量获取文档数据是通过_mgetAPI...,则是创建 如果原文档存在,则是替换(全量修改原文档) (3)批量删除delete POST _bulk {"delete":{"_index":"article", "_type":"_doc", "

    1.2K10

    Elasticsearch 7.6.1学习(五)springboot集成es使用,实现增删改查,并且分析源码

    ,之后使用client 就可以操作es了 创建索引(相当于创建数据库) es6.8.4 版本,我们创建索引时候,要创建实体类,实体类上面要写索引名字,之后执行代码 就可以创建索引了。...删除索引 // 删除索引 @Test void testDeleteIndex() throws IOException { DeleteIndexRequest...删除文档 // 删除文档记录 @Test void testDeleteRequest() throws IOException { DeleteRequest request...,批量更新和批量删除, // 批量更新和批量删除,修改对应请求就可以了 ,具体看代码 // 特殊,真的项目一般都会批量插入数据!...3)); // 批处理请求 for (int i = 0; i < userList.size(); i++) { // 批量更新和批量删除

    2.3K20

    ES查询操作

    10.查询操作 10.1 查询当前类型中所有文档 _search 格式: GET /索引名称/类型/_search 举例: GET /es_db/_doc/_search SQL: select...sort=age:desc SQL: select * from student order by age desc 11.文档批量操作 1.批量获取文档数据 批量获取文档数据是通过_mgetAPI...来实现 (1)在URL中不指定index和type 请求方式:GET 请求地址:_mget 功能说明 : 可以通过ID批量获取不同index和type数据 请求参数: docs : 文档数组参数 _...id": 1 }, { "_id": 2 } ] } 2.批量操作文档数据 批量文档进行写操作是通过_bulkAPI来实现 请求方式:POST 请求地址:_bulk 请求参数:通过_bulk操作文档...,则是创建 如果原文档存在,则是替换(全量修改原文档) (3)批量删除delete POST _bulk {"delete":{"_index":"article", "_type":"_doc", "

    1.1K10

    ES查询操作

    10.查询操作 10.1 查询当前类型中所有文档 _search 格式: GET /索引名称/类型/_search 举例: GET /es_db/_doc/_search SQL: select...sort=age:desc SQL: select * from student order by age desc 11.文档批量操作 1.批量获取文档数据 批量获取文档数据是通过_mgetAPI...来实现 (1)在URL中不指定index和type 请求方式:GET 请求地址:_mget 功能说明 : 可以通过ID批量获取不同index和type数据 请求参数: docs : 文档数组参数 _...id": 1 }, { "_id": 2 } ] } 2.批量操作文档数据 批量文档进行写操作是通过_bulkAPI来实现 请求方式:POST 请求地址:_bulk 请求参数:通过_bulk操作文档...,则是创建 如果原文档存在,则是替换(全量修改原文档) (3)批量删除delete POST _bulk {"delete":{"_index":"article", "_type":"_doc", "

    98910

    ElasticSearch 文档增删改查都不会?

    创建文档时,如果索引不存在,ES 会自动创建对应 index 和 type。 接下来看下另一种创建文档方式,不指定 id 创建文档,HTTP 请求也变为了 POST,具体请求如下: ?...返回结果如下: ? Index 和 Create 区别为:如果文档不存在,就索引文档,否则现有文档就会被删除,新文档索引,版本信息 _version + 1。...删除文档 Delete 方法也很简单,Delete 索引名称/_doc/文档 id 就可以了,再这里就不再做代码演示了。...在介绍完文档基本 CRUD 操作后,让我们来看看批量操作吧: Bulk API 在一个 REST 请求中,重新建立网络开销是十分损耗性能,因此 ES 提供 Bulk API,支持在一次 API 调用中...批量查询文档 批量查询需要指明要查询文档 id,可以在一个 _mget 操作里查询不同索引数据,可以减少网络连接所产生开销,提高性能。

    1.4K00
    领券