elasticsearch使用指南之Elasticsearch Document Delete API详解、原理与示例
作者简介:《RocketMQ技术内幕》作者,中间件兴趣圈公众号 维护者。
本节将重点介绍ElasticSearch Doucment Delete API(根据ID删除文档)。
从《ElasticSearch Client详解》可知,ElasticSearch Delete Rest Hign level Delete Api声明如下:
- public final DeleteResponse delete(DeleteRequest deleteRequest, RequestOptions options) throws IOException
- public final void deleteAsync(DeleteRequest deleteRequest, RequestOptions options, ActionListener listener)
上述两个API,一个同步调用,一个异步调用,同步调用方法直接组装DeleteResponse 并返回,而异步方法通过回调ActionListener,并将执行结果(DeleteResponse)传入回调方法。DeleteRequest 需要的请求参数在IndexRequest、GetRequest中都已提及,本节 就无需再对其进行分析。
1、Delete API示例
public static void testDelete() { RestHighLevelClient client = EsClient.getClient(); try { DeleteRequest request = new DeleteRequest("twitter", "_doc", "1"); DeleteResponse result = client.delete(request, RequestOptions.DEFAULT); System.out.println(result); } catch(Throwable e) { e.printStackTrace(); } finally { EsClient.close(client); } }
返回示例:
{ "_shards" : { "total" : 2, "failed" : 0, "successful" : 1 }, "_index" : "twitter", "_type" : "_doc", "_id" : "1", "_version" : 2, "_primary_term": 1, "_seq_no": 5, "result": "deleted" }
2、深入Delete API内部实现机制
2.1 版本管理
索引的每个文档都是版本化的。在一个文档上执行的每一个写操作,包括删除,都会导致它的版本增加。被删除的文档的版本号在删除后的短时间内仍然可用,以允许对并发操作进行控制(基于版本的乐观锁控制)。被删除的文档版本保留的时间由配置项index.gc_deletes决定,默认时间为60s。
2.2 自动创建索引
执行一个文档的删除操作,如果索引不存在,默认情况下也会自动创建索引。其他诸如分布式、Wait For Active Shards、刷新机制、超时机制都在《Elasticsearch Document Index API详解、原理与示例》中已详细描述,再次不重复。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Presto Procedure
概述 Presto里面有个类似普通数据库存储过程的东西叫做 Procedure(https://prestosql.io/docs/current/sql/call.html), 它的主要作用是用来提供一下DDL或者管理性的工作,它的用法跟MySQL里面的存储过程类似,比如: -- 调用一个两个参数的存储过程 CALL test(123, 'apple'); -- 支持named arguments CALL test( name => 'apple', id => 123 ); 虽然名字叫Procedure,但是你无法通过Presto的CALL语法来调用底层RDBMS里面的存储过程,概念类似,但是不是一个层面的东西,Presto里面能CALL的Procedure是需要Connector注册的。 开发一个P
- 下一篇
【行业|分析】大数据对于银行七大应用
如今,Hadoop几乎存在于各个方面,其通过利用大数据来分析信息和增加竞争力。许多金融机构和公司已经开始使用Hadoop成功地解决问题,即便他们本没有计划这样做。因为如果他们不这样做,就会面临市场份额损失的巨大风险。以下是一些特别有趣且重要的大数据和Hadoop用例。 诈骗侦测 诈骗是金融犯罪和数据泄露中成本最大的挑战之一。Hadoop分析可以帮助金融机构检测、预防和减小来自内部和外部的诈骗行为,同时降低相关成本。销售、授权、交易以及其他的数据分析点能够帮助银行识别和减少诈骗。例如,大数据技术通过提取异常行为模式,能够提醒银行信用卡或借记卡的丢失或被盗。从而给银行提供时间暂时冻结异常账户,直到联系到账户持有人为止。 风险管理 任何一家金融公司都需要准确地评估风险,而大数据解决方案就使他们能够有效地评估信贷风险。银行分析交易数据,基于模拟市场行为、评估用户和潜在用户,来确定风险和泄露。Hadoop的解决方案对风险和后果具有全面而准确的考虑,使企业能做出最好、最明智的决策。 客服中心效率优化 确保用户满意无疑是最重要的。涉及到金融业,大数据允许银行提前预测用户需求用以快速地解决问题。客服中...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8