重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如何分析Elasticsearch Document Delete API,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的萝北网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
这里将重点介绍ElasticSearch Doucment Delete API
从《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
上述两个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 自动创建索引
执行一个文档的删除操作,如果索引不存在,默认情况下也会自动创建索引,其创建索引的控制逻辑在《Elasticsearch Document Index API详解、原理与示例》中已详细描述,再次不重复。
看完上述内容,你们掌握如何分析Elasticsearch Document Delete API的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!