xxx_by_query包括_delete_by_query和_update_by_query,下面分开讲

_delete_by_query

相当于sql中的delete from a where 。。。删除满足条件的文档

在Dev Tools执行的格式是

POST teacher/_doc/_delete_by_query
{"query": {"range": {"updated_date": {"from": 1534007400000,"to": 1534007700000}}}
}

值得注意的是,Java High Level REST Client截止到6.3.2版本(elasticsearch-rest-high-level-client-6.3.2.jar),尽管有DeleteByQueryRequest类,可以通过DeleteByQueryRequest(SearchRequest search)构造器构造一个实例,但是RestHighLevelClient实例没有合适的方法来操作DeleteByQueryRequest实例(如RestHighLevelClient实例可以用index(XxxRequest xxxRequest, Header... headers)实例方法来操作索引的文档,可以用indices()实例方法获取IndicesClient实例,进而通过其各种实例方法来操作索引,但是没有方法的入参是DeleteByQueryRequest实例)。

想在java代码中实现delete_by_query功能,有2种替代方法:

1.先用searchRequest筛选出符合条件的文档的id集合,然后根据id用deleteRequest来删除。

2.调用RestHighLevelClient实例的getLowLevelClient()方法获取org.elasticsearch.client.RestClient实例,即low-level client,然后调用其performRequest(String method, String endpoint, Map<String, String> params, HttpEntity entity, Header... headers)方法,其中method是"POST",endpoint是"/index/doc/_delete_by_query",代码示例如下:

    public static void main(String[] args) throws Exception {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.56.11", 9200, "http"),new HttpHost("192.168.56.12", 9201, "http")));try {HttpEntity entity = new NStringEntity(generateQueryString(), ContentType.APPLICATION_JSON);Response response = client.getLowLevelClient().performRequest("POST", "/teacher/_doc/_delete_by_query", Collections.emptyMap(), entity);Map responseMap = JSON.parseObject(IOUtils.toString(response.getEntity().getContent(), "UTF-8"));LOGGER.info(responseMap);} catch (Exception e) {LOGGER.error("client delete_by_query exception", e);} finally {if (client != null) {client.close();}}}public static String generateQueryString() {IndexRequest indexRequest = new IndexRequest();XContentBuilder builder;try {long begin = 1534015700000L;long end = 1534016700000L;builder = JsonXContent.contentBuilder().startObject().startObject("query").startObject("range").startObject("updated_date").field("from", begin).field("to", end).endObject().endObject().endObject().endObject();indexRequest.source(builder);} catch (IOException e) {e.printStackTrace();}return indexRequest.source().utf8ToString();}

转载于:https://www.cnblogs.com/koushr/p/9520811.html

es xxx_by_query相关推荐

  1. Android OpenGL ES(十一)绘制一个20面体 .

    前面介绍了OpenGL ES所有能够绘制的基本图形,点,线段和三角形.其它所有复杂的2D或3D图形都是由这些基本图形构成. 本例介绍如何使用三角形构造一个正20面体.一个正20面体,有12个顶点,20 ...

  2. es日期format_elasticsearch存储日期格式字段

    elasticsearch创建index之后,可以设置mapping,如果mapping中没有设置date的format,那么默认为两种格式: date_optional_time 此格式为ISO86 ...

  3. data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群

    一.简介 Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便,轻松扩 ...

  4. ES集群状态、节点、索引等查看及根据字段、排序查询

    ES集群基础: 1. 查看集群: http://172.xxx.xxx.8:9200 2. 查看状态: http://172.xxx.xxx.8:9200/_cat/health?v 3. 查看索引: ...

  5. ES单字段支持的最大字符数

    在使用ES时,需要用到进行检索的字段都需设置为 keyword,不需要检索的可以设置 text. 设置keyword,默认不分词,它的最大长度和utf-8编码有关,最大长度为32766字节,如果字段长 ...

  6. ES强制删除docs.deleted 标记的文档 document

    ES查看集群状态.节点.索引等及基本查询 ES会产生一些 docs.deleted 的数据如下图,怎么彻底删除呢? 删除数据的时候:可以使用_delete_by_query,然而这并不彻底. 只是逻辑 ...

  7. es安装的时候遇到的所有的坑

    不允许root用户启动. 解决办法,创建子用户. 在linux下需要注意.es默认不能用root用户启动.我们需要新建一个用户来启动. groupadd  es adduser  es-user    ...

  8. 利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数

    1.                 打开Eclipse,File-->New-->Project--->Android-->AndroidApplication Projec ...

  9. es父子结构查询_ES 父子文档查询

    父子文档的特点 1. 父/子文档是完全独立的. 2. 父文档更新不会影响子文档. 3. 子文档更新不会影响父文档或者其它子文档. 父子文档的映射与索引 1. 父子关系 type 的建立必须在索引新建或 ...

最新文章

  1. async await:比requests 更强大
  2. R语言ggplot2可视化(facet图)使得第一个子图的坐标轴范围一致
  3. python学习框架图-从零搭建深度学习框架(二)用Python实现计算图和自动微分
  4. Linux单用户模式、救援模式、克隆虚拟机与Linux机器互相登录
  5. 工作110:地址里面返回参数
  6. c语言 数组循环移动,如何将一个数组的元素循环左移?
  7. 优秀软件架构师成长之路
  8. ECMAScript 和 JavaScript 的关系
  9. python中的tail()_让VASP实现固定应力张量计算的python脚本
  10. 铁路售票系统_高铁铁路运营客票乘务,自动售检票务实训的诞生背景
  11. 【文献学习】DeepReceiver: A Deep Learning-Based Intelligent Receiver for Wireless Communications in the Ph
  12. 三星 android recovery,三星所有机型如何进入recovery模式的方法
  13. 现在更新鸿蒙会成为小白鼠吗,猫和老鼠鸿蒙版下载-猫和老鼠网易官方手游鸿蒙版 v7.8.4-114手机乐园...
  14. python背景图添加_Python实例讲解 -- tkinter canvas (设置背景图片及文字)
  15. 更新~音乐播放器的同步显示歌词
  16. Python随机生成均匀分布在单位圆内的点
  17. 2.5 随从受伤溅血效果的实现———自制卡牌游戏之旅
  18. 去法国,买哪些伴手礼既有面子又不破费
  19. childNodes和children的区别
  20. 订单23系统服务器,死亡搁浅图文攻略 主线流程+订单系统+运送流程+建筑搭建 第3节芙拉吉尔 订单No23.系统服务器-游侠网...

热门文章

  1. 消息中间件的 Style
  2. 情人节,怎么同时约会女神和女朋友
  3. 任务分发系统-Qcmd-http详解
  4. SpringCloud Consul注册中心介绍及配置使用
  5. errgroup 分析
  6. npm常用命令(扩展中...)
  7. python--递归计算n的价乘
  8. python--list
  9. 递归删除.svn文件夹以及文件
  10. preg_match进行正则表达式匹配