- 浏览: 667645 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
Elasticsearch Delete/UpdateByQuery案例
- 博客分类:
- bboss elastic
Elasticsearch Delete/UpdateByQuery案例分享
本文涉及技术点:
1.准备工作
参考文档《高性能elasticsearch ORM开发库使用介绍》导入和配置es客户端
2.编写创建索引表和初始化数据方法
创建索引表和初始化数据的组件DocumentCRUD 实现本文不做重点介绍,请访问视频教程了解:
3.定义DeleteByQuery/UpdateByQuery对应的Dsl脚本
新建配置文件-esmapper/byquery.xml
4.实现DeleteByQuery功能
5.执行DeleteByQuery junit单元测试方法
6.定义updatebyquery方法
定义两个updatebyquery方法,一个带query dsl,一个不带query dsl:
7.执行updatebyquery junit单元测试方法
8.参考文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html
本文示例代码对应的源码工程地址:
https://gitee.com/bboss/eshelloword
本文对应的java文件:
https://gitee.com/bboss/eshelloword/blob/master/src/main/java/org/bboss/elasticsearchtest/byquery/DeleteUdateByQuery.java
https://gitee.com/bboss/eshelloword/blob/master/src/test/java/org/bboss/elasticsearchtest/crud/DeleteUdateByQueryTest.java
本文对应的dsl配置文件:
https://gitee.com/bboss/eshelloword/blob/master/src/main/resources/esmapper/byquery.xml
本文涉及技术点:
- DeleteByQuery/UpdateByQuery
- Count文档统计Api
1.准备工作
参考文档《高性能elasticsearch ORM开发库使用介绍》导入和配置es客户端
2.编写创建索引表和初始化数据方法
创建索引表和初始化数据的组件DocumentCRUD 实现本文不做重点介绍,请访问视频教程了解:
/** * 创建索引表并导入测试数据 */ public void initIndiceAndData(){ DocumentCRUD documentCRUD = new DocumentCRUD(); documentCRUD.testCreateIndice();//创建索引表 documentCRUD.testBulkAddDocument();//导入测试数据 }
3.定义DeleteByQuery/UpdateByQuery对应的Dsl脚本
新建配置文件-esmapper/byquery.xml
<properties> <!-- updateByquery deleteByquery dsl配置之文件 --> <property name="updateByQuery"> <![CDATA[ { "query": { "bool": { "filter": [ { ## 多值检索,查找多个应用名称对应的文档记录 "terms": { "applicationName.keyword": [#[applicationName1],#[applicationName2]] } }, { ## 时间范围检索,返回对应时间范围内的记录,接受long型的值 "range": { "agentStarttime": { "gte": #[startTime],##统计开始时间 "lt": #[endTime] ##统计截止时间 } } } ] } } } ]]> </property> <property name="deleteByQuery"> <![CDATA[ { "query": { "bool": { "filter": [ { ## 多值检索,查找多个应用名称对应的文档记录 "terms": { "applicationName.keyword": [#[applicationName1],#[applicationName2]] } }, { ## 时间范围检索,返回对应时间范围内的记录,接受long型的值 "range": { "agentStarttime": { "gte": #[startTime],##统计开始时间 "lt": #[endTime] ##统计截止时间 } } } ] } } } ]]> </property> </properties>
4.实现DeleteByQuery功能
定义实现DeleteByQuery功能的方法 /** * 验证DeleteByQuery功能 * @throws ParseException */ public void deleteByQuery() throws ParseException { ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("esmapper/byquery.xml"); //设定DeleteByQuery查询条件,通过map传递变量参数值,key对于dsl中的变量名称 //dsl中有四个变量 // applicationName1 // applicationName2 // startTime // endTime Map<String,Object> params = new HashMap<String,Object>(); //设置applicationName1和applicationName2两个变量的值 params.put("applicationName1","blackcatdemo2"); params.put("applicationName2","blackcatdemo3"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置时间范围,时间参数接受long值 params.put("startTime",dateFormat.parse("2017-09-02 00:00:00").getTime()); params.put("endTime",new Date().getTime()); //通过count api先查询数据是否存在 long totalSize = clientUtil.count("demo","deleteByQuery",params); System.out.println("---------------------------------删除前查询,验证数据是否存在:totalSize="+totalSize); if(totalSize > 0) {//如果有数据,则通过by query删除之,为了实时查看删除效果,启用了强制刷新机制 //执行DeleteByQuery操作 String result = clientUtil.deleteByQuery("demo/_delete_by_query?refresh", "deleteByQuery", params); System.out.println(result); //删除后再次查询,验证数据是否被删除成功 totalSize = clientUtil.count("demo","deleteByQuery",params); System.out.println("---------------------------------删除后再次查询,验证数据是否被删除:totalSize="+totalSize); } }
5.执行DeleteByQuery junit单元测试方法
@Test public void testDeleteByQuery() throws ParseException { DeleteUdateByQuery deleteUdateByQuery = new DeleteUdateByQuery(); deleteUdateByQuery.initIndiceAndData();//初始化索引表和测试数据 deleteUdateByQuery.deleteByQuery();//执行deleteByquery }
6.定义updatebyquery方法
定义两个updatebyquery方法,一个带query dsl,一个不带query dsl:
/** * 验证simpleUpdateByQuery功能 */ public void simpleUpdateByQuery(){ ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil(); String result = clientUtil.updateByQuery("demo/_update_by_query?conflicts=proceed"); System.out.println("******************simpleUpdateByQuery result:"+result); } /** * 验证带查询条件UpdateByQuery功能 * @throws ParseException */ public void updateByQueryWithCondition() throws ParseException { ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("esmapper/byquery.xml"); //设定查询条件,通过map传递变量参数值,key对于dsl中的变量名称 //dsl中有四个变量 // applicationName1 // applicationName2 // startTime // endTime Map<String,Object> params = new HashMap<String,Object>(); //设置applicationName1和applicationName2两个变量的值 params.put("applicationName1","blackcatdemo2"); params.put("applicationName2","blackcatdemo3"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置时间范围,时间参数接受long值 params.put("startTime",dateFormat.parse("2017-09-02 00:00:00").getTime()); params.put("endTime",new Date().getTime()); String result = clientUtil.updateByQuery("demo/_update_by_query?conflicts=proceed","updateByQuery",params); System.out.println("******************updateByQueryWithCondition result:"+result); }
7.执行updatebyquery junit单元测试方法
@Test public void testUpdateByQuery() throws ParseException { DeleteUdateByQuery deleteUdateByQuery = new DeleteUdateByQuery(); deleteUdateByQuery.initIndiceAndData();//初始化索引表和测试数据 deleteUdateByQuery.simpleUpdateByQuery(); deleteUdateByQuery.updateByQueryWithCondition(); }
8.参考文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html
本文示例代码对应的源码工程地址:
https://gitee.com/bboss/eshelloword
本文对应的java文件:
https://gitee.com/bboss/eshelloword/blob/master/src/main/java/org/bboss/elasticsearchtest/byquery/DeleteUdateByQuery.java
https://gitee.com/bboss/eshelloword/blob/master/src/test/java/org/bboss/elasticsearchtest/crud/DeleteUdateByQueryTest.java
本文对应的dsl配置文件:
https://gitee.com/bboss/eshelloword/blob/master/src/main/resources/esmapper/byquery.xml
发表评论
-
一组获取Elasticsearch 索引表所有文档API使用案例
2018-11-18 16:02 3000The best elasticsearch highle ... -
Elasticsearch Scroll和Slice Scroll查询API使用案例
2018-09-16 18:49 3827Elasticsearch Scroll和Slice Scro ... -
数据库数据导入Elasticsearch案例分享
2018-09-16 18:42 6246The best elasticsearch highleve ... -
Spring Boot整合ElasticSearch单/多集群案例
2018-07-07 20:12 9761Spring Boot整合ElasticSearch单个集群和 ... -
ElasticSearch DSL Script使用案例分享
2018-06-28 23:52 6166the best elasticsearch highleve ... -
Elasticsearch 6.3.0 SQL功能使用案例分享
2018-06-25 19:12 3270The best elasticsearch highleve ... -
数据库数据导入Elasticsearch案例分享
2018-06-21 22:56 433The best elasticsearch highleve ... -
ElasticSearch From-Size分页案例
2018-06-14 00:17 3375ElasticSearch From-Size分页案例 1. ... -
ElasticSearch客户端注解使用介绍
2018-05-30 00:19 2361The best elasticsearch highleve ... -
基于自定义配置文件初始化ElasticSearch客户端方法介绍
2018-05-24 18:56 1479基于自定义配置文件初始化ElasticSearch客户端方法介 ... -
Elasticsearch关键词高亮检索案例分享
2018-05-10 22:18 62091.准备工作 参考文档《集成Elasticsearch Res ... -
判断ElasticSearch索引Indice和索引类型是否存在
2018-05-05 23:54 8488The best elasticsearch highleve ... -
快速集成Elasticsearch Restful API案例
2018-04-26 14:27 3163The best elasticsearch highleve ... -
Elasticsearch source filter检索案例
2018-04-24 13:00 2212摘要: the best elasticsearch high ... -
Elasticsearch search after分页检索案例
2018-04-21 10:36 3039Elasticsearch search after分页检索案 ... -
Elasticsearch返回父子数据关联查询案例
2018-04-13 12:36 4665在《Elasticsearch 父子关 ... -
Elasticsearch Sliced Scroll分页检索案例分享
2018-04-02 18:28 3733Elasticsearch Sliced Scroll分页检索 ... -
Elasticsearch地理位置维护及检索案例分享
2018-03-31 21:36 1682Elasticsearch地理位置信息维护及检索案例分享 1 ... -
Elasticsearch Scroll分页检索案例分享
2018-03-28 20:40 4052Elasticsearch Scroll分页检索案例分享 1 ... -
Elasticsearch Mget、GetDocSource、索引部分更新案例分享
2018-03-25 08:55 12131.前期准备 参考文档《高性能elasticsearch OR ...
相关推荐
ElasticSearch之插件Delete-by-Query,当es想批量删除数据时,安装该插件,可用将查询的结果数据进行批量删除。
jar包,官方版本,自测可用
docker run --name elasticsearch7.16.3 -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -v /Users/xingyue/Home/xingyue/学习/工程化/es/elasticsearch.yml:/usr/share/elastic...
jar包,官方版本,自测可用
1、进入到Elasticsearch的安装路径下,本文中以该路径为例子:/ultra/ES/elasticsearch-2.3.4。先安装license,执行以下命令: ./bin/plugin install license 2、再安装shield,执行以下命令: ./bin/plugin ...
消费kafka数据,然后批量导入到Elasticsearch,本例子使用的kafka版本0.10,es版本是6.4,使用bulk方式批量导入到es中,也可以一条一条的导入,不过比较慢。 <groupId>org.elasticsearch</groupId> <artifactId>...
该安装包实现利用给定参数安装单机版或者集群版es数据库,指定参数后安装过程全自动,自动修改系统内核,配置jdk,自动识别并配置内存,自动根据节点数配置集群脑溢节点配置数。涉及到以下操作 1、自动检测配置java...
jar包,官方版本,自测可用
jar包,官方版本,自测可用
java操作ElasticSearch的工具类。需要添加依赖: <!-- ElasticSearch依赖 --> <groupId>io.searchbox</groupId> <artifactId>jest</artifactId> <version>6.3.1</version> </dependency> <!-- ...
ElasticSearch和activiti案例ElasticSearch和activiti案例ElasticSearch和activiti案例ElasticSearch和activiti案例
elasticsearch-jieba-plugin 是 Jieba 中文分词插件。试用 Elasticsearch 5.1.2 版本,基于 huaban 开源的的 jieba java 实现。使用checkout tag: v5.1.2git checkout v5.1.2运行gradle buildPluginZip创建 ...
(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...
elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载
进入文件夹elasticsearch-6.2.4,执行命令gradlew assemble,编译完成后,进入目录elasticsearch-6.2.4/distribution/tar/build/distributions可以见到构建成功的结果:elasticsearch-6.2.4-SNAPSHOT.tar.gz,这就是...
如果我们安装不成功,我们可以直接下载 Elasticsearch-SQL 插件的压缩包,然后解压,完成之后重命名文件夹为 sql ,放到 ES 的安装路径的 plugins目录中,例如:..\elasticsearch-6.4.0\plugins\sql。
elasticsearch官方的示例数据,包括shakespeare_6.0.json、accounts.zip 、logs.jsonl.gz。 官网下载地址是 https://download.elastic.co/demos/kibana/gettingstarted/logs.jsonl.gz ...或者 ...shakespeare.json的type...
elasticsearch-6.2.4 java增删改查操作代码案例,内含elasticsearch-6.2.4 安装包和 java工程,无需依赖maven 直接导入eclipse直接运行,提供非结构化数据的抽取工具类
下载xpack6.2.2.zip文件,将x-pack-core-6.2.2.jar 文件放置在elasticsearch的安装目录下的elasticsearch-6.2.2\plugins\x-pack\x-pack-core 下替换原来的x-pack-core-6.2.2.jar文件。 然后 参考 ...
Elasticsearch示例数据 logs.json shakespeare.json accounts.json