es xxx_by_query
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相关推荐
- Android OpenGL ES(十一)绘制一个20面体 .
前面介绍了OpenGL ES所有能够绘制的基本图形,点,线段和三角形.其它所有复杂的2D或3D图形都是由这些基本图形构成. 本例介绍如何使用三角形构造一个正20面体.一个正20面体,有12个顶点,20 ...
- es日期format_elasticsearch存储日期格式字段
elasticsearch创建index之后,可以设置mapping,如果mapping中没有设置date的format,那么默认为两种格式: date_optional_time 此格式为ISO86 ...
- data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群
一.简介 Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便,轻松扩 ...
- ES集群状态、节点、索引等查看及根据字段、排序查询
ES集群基础: 1. 查看集群: http://172.xxx.xxx.8:9200 2. 查看状态: http://172.xxx.xxx.8:9200/_cat/health?v 3. 查看索引: ...
- ES单字段支持的最大字符数
在使用ES时,需要用到进行检索的字段都需设置为 keyword,不需要检索的可以设置 text. 设置keyword,默认不分词,它的最大长度和utf-8编码有关,最大长度为32766字节,如果字段长 ...
- ES强制删除docs.deleted 标记的文档 document
ES查看集群状态.节点.索引等及基本查询 ES会产生一些 docs.deleted 的数据如下图,怎么彻底删除呢? 删除数据的时候:可以使用_delete_by_query,然而这并不彻底. 只是逻辑 ...
- es安装的时候遇到的所有的坑
不允许root用户启动. 解决办法,创建子用户. 在linux下需要注意.es默认不能用root用户启动.我们需要新建一个用户来启动. groupadd es adduser es-user ...
- 利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数
1. 打开Eclipse,File-->New-->Project--->Android-->AndroidApplication Projec ...
- es父子结构查询_ES 父子文档查询
父子文档的特点 1. 父/子文档是完全独立的. 2. 父文档更新不会影响子文档. 3. 子文档更新不会影响父文档或者其它子文档. 父子文档的映射与索引 1. 父子关系 type 的建立必须在索引新建或 ...
最新文章
- async await:比requests 更强大
- R语言ggplot2可视化(facet图)使得第一个子图的坐标轴范围一致
- python学习框架图-从零搭建深度学习框架(二)用Python实现计算图和自动微分
- Linux单用户模式、救援模式、克隆虚拟机与Linux机器互相登录
- 工作110:地址里面返回参数
- c语言 数组循环移动,如何将一个数组的元素循环左移?
- 优秀软件架构师成长之路
- ECMAScript 和 JavaScript 的关系
- python中的tail()_让VASP实现固定应力张量计算的python脚本
- 铁路售票系统_高铁铁路运营客票乘务,自动售检票务实训的诞生背景
- 【文献学习】DeepReceiver: A Deep Learning-Based Intelligent Receiver for Wireless Communications in the Ph
- 三星 android recovery,三星所有机型如何进入recovery模式的方法
- 现在更新鸿蒙会成为小白鼠吗,猫和老鼠鸿蒙版下载-猫和老鼠网易官方手游鸿蒙版 v7.8.4-114手机乐园...
- python背景图添加_Python实例讲解 -- tkinter canvas (设置背景图片及文字)
- 更新~音乐播放器的同步显示歌词
- Python随机生成均匀分布在单位圆内的点
- 2.5 随从受伤溅血效果的实现———自制卡牌游戏之旅
- 去法国,买哪些伴手礼既有面子又不破费
- childNodes和children的区别
- 订单23系统服务器,死亡搁浅图文攻略 主线流程+订单系统+运送流程+建筑搭建 第3节芙拉吉尔 订单No23.系统服务器-游侠网...