`
kane_xie
  • 浏览: 145022 次
社区版块
存档分类
最新评论

Elasticsearch Bulk API

阅读更多

Elasticsearch Bulk API允许批量提交index和delete请求。

 

BulkRequestBuilder bulkRequest = client.prepareBulk();
bulkRequest.add(client.prepareIndex("index1", "type1", "id1").setSource(source);
bulkRequest.add(client.prepareIndex("index2", "type2", "id2").setSource(source);
BulkResponse bulkResponse = bulkRequest.execute().actionGet();

 

 

但有时我们需要更精细的批量操控,比如

 

BulkProcessor bulkProcessor = BulkProcessor.builder(
        client,  
        new BulkProcessor.Listener() {
            @Override
            public void beforeBulk(long executionId,
                                   BulkRequest request) { ... } 

            @Override
            public void afterBulk(long executionId,
                                  BulkRequest request,
                                  BulkResponse response) { ... } 

            @Override
            public void afterBulk(long executionId,
                                  BulkRequest request,
                                  Throwable failure) { ... } 
        })
        .setBulkActions(10000) 
        .setBulkSize(new ByteSizeValue(1, ByteSizeUnit.GB)) 
        .setFlushInterval(TimeValue.timeValueSeconds(5)) 
        .build();
bulkProcessor.add(new IndexRequest("index1", "type1", "id1").source(source1));
bulkProcessor.add(new DeleteRequest("index2", "type2", "id2");

 

 

1. beforeBulk会在批量提交之前执行,可以从BulkRequest中获取请求信息request.requests()或者请求数量request.numberOfActions()。

2. 第一个afterBulk会在批量成功后执行,可以跟beforeBulk配合计算批量所需时间

3. 第二个afterBulk会在批量失败后执行

4. 在例子中,当请求超过10000个(default=1000)或者总大小超过1GB(default=5MB)时,触发批量提交动作。另外每隔5秒也会提交一次(默认不会根据时间间隔提交)。

1
1
分享到:
评论

相关推荐

    ElasticSearch Java API 中文文档

    标签《ES Java API 中文文档》强调了文档的内容属性,它属于ElasticSearch的一个重要组成部分,即用Java语言进行数据交互和操作的应用程序接口部分。 从部分内容中可以提取出以下知识点: 1. **Transport Client**...

    基于Elasticsearch Java API的参考手册

    **Elasticsearch Java API详解** Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,广泛应用于大数据领域的实时分析和信息检索。Java API是Elasticsearch官方提供的与Elasticsearch服务器进行交互的...

    elasticsearch-bulk-insert-plugin-8.2.0.0-342.zip

    标签"Es7的插"进一步强调了这个插件是专为Elasticsearch 7.x设计的,因此它可能包含了针对新版本API的适配和优化。使用这个插件,用户可以利用Kettle的强大功能处理复杂的数据转换,并通过批量插入的方式高效地将...

    Elasticsearch5.x Java API手册

    Elasticsearch 5.x 版本的 Java API 手册是开发者进行 Elasticsearch 相关开发的重要参考资料。Elasticsearch 是一个流行的开源全文搜索引擎,广泛应用于数据检索、分析和实时数据存储。Java API 提供了与 Elastic...

    elasticsearch-net-api 离线文档

    通过这个 API,你可以轻松地进行 CRUD(创建、读取、更新、删除)操作,实现与 Elasticsearch 服务器的无缝对接。 ### 三、基本概念 1. **索引(Index)**: 存储数据的逻辑空间,类似于数据库。 2. **类型(Type)...

    elasticsearch-bulk-insert-plugin-9插件,支持ES7.16

    总之,elasticsearch-bulk-insert-plugin-9是一个专门为Kettle设计的Elasticsearch批量插入插件,专为Elasticsearch 7.16版本优化,它通过 Bulk API 提升了数据导入的速度,是大数据处理和分析场景下的理想选择。...

    ImportCsvIntoElasticsearch:使用Java Bulk API将任何CSV文件导入Elasticsearch

    描述该项目的主要目的是展示elasticsearch Bulk API的用法。 为此,我们创建了一个项目,该项目可以在elasticsearch中加载任何CSV文件。 映射的创建留给elasticsearch来处理它的创建,尽管通常还是建议我们自己做。...

    Elasticsearch BulkProcessor 的具体实现.pdf

    为了进一步提高批量操作(如插入、更新或删除大量文档)的效率,Elasticsearch 提供了 Bulk API 和 BulkProcessor,通过它们可以有效地提升性能。 #### 二、添加 pom 依赖 在进行 BulkProcessor 的开发之前,首先...

    elasticsearch5.6以上version通用java API

    在"elasticsearch5.6以上version通用java API"中,我们将会探讨如何利用Java编写工具类,以覆盖更全面的操作,如映射创建、批量插入、聚合查询以及模糊和精确查询。 1. **映射创建**:Elasticsearch的映射(Mapping...

    springBoot整合kafka和elasticSearch,实现批量拉取日志以及批量更新到es里

    在`bulkSaveToEs`方法中,我们使用Elasticsearch的Bulk API进行批量保存,这能显著提高插入效率。`parseLog`方法根据实际日志格式解析并转换日志数据。 为了实现“百万日志秒处理”的目标,我们需要注意优化以下几...

    Elasticsearch Java API 手册.zip

    Java API是与Elasticsearch交互的主要方式之一,尤其对于Java开发者来说,它提供了丰富的功能和高效的性能。本手册将深入探讨Elasticsearch Java API的各个方面,帮助你充分利用这个强大的工具。 1. **Elastic...

    elasticsearch-javascript-api 离线文档

    Elasticsearch 提供了 `bulk` API 来批量处理文档的创建、更新和删除。可以使用数组格式的请求体来指定多个操作。 ```javascript client.bulk({ refresh: true, body: [ { index: { _index: 'my_index', _id: '1'...

    基于.netcore搜索封装ElasticSearch.zip

    这个名为"基于.netcore搜索封装ElasticSearch.zip"的压缩包,显然包含了一个针对.NET Core平台的Elasticsearch客户端库,方便开发者在.NET Core应用中集成和操作Elasticsearch。 Elasticsearch是一个开源的分布式...

    Elasticsearch实战指南:从下载到高级应用全解析.pdf

    - 将商品数据导入 Elasticsearch,可以通过 Logstash、Elasticsearch Bulk API 等方式进行。 - 利用 Elasticsearch 的文本分析功能(如分词器、同义词替换等)优化搜索体验,提高搜索结果的准确性和相关性。 - ...

    elasticsearch JAVA使用手册

    Elasticsearch 5.0.1版本的Java API操作为开发者提供了具体操作的示例代码,这些代码示例能够帮助开发者更加高效地管理和优化Elasticsearch集群。 综上所述,Elasticsearch是一个功能强大的搜索引擎,它的Java API...

    elasticsearch-6.8.0+elasticsearch-analysis-ik-6.8.0 .zip

    3. **数据导入**:使用 Elasticsearch 的 Bulk API 或者 Spring Data Elasticsearch 进行批量数据导入。 4. **分词器选择**:选择合适的分词器,如 IK 分词器,为中文文本提供精确的分词服务。 5. **查询接口设计**...

    elasticsearch7.14.0.zip

    10. **数据导入与查询**:使用Elasticsearch的`_bulk` API进行批量数据导入,可以大大提高效率。查询时,利用JSON格式的请求体,可以构建复杂的查询条件和聚合分析。 以上内容涵盖了Elasticsearch 7.14.0的基本使用...

    交换机性能分析1

    本文将详细探讨如何使用交换机性能对比测试方法来评估网络延迟,以及如何利用Elasticsearch的bulk API进行批量数据导入,并观察其对网络的影响。 首先,Elasticsearch是一个实时的分布式搜索和分析引擎,广泛应用于...

    elasticsearch java操作的api实例

    在Java环境中操作Elasticsearch,我们通常会利用官方提供的Java API,这是一个非常全面且强大的工具集,让我们能够方便地进行索引管理、查询、过滤、分组和映射设置等操作。 首先,让我们详细了解如何使用Java API...

Global site tag (gtag.js) - Google Analytics