ElasticSearch之BoolQueryBuilder使用

AI 摘要 / TL;DR

ElasticSearch之BoolQueryBuilder使用 点击上方“IT那活儿 ”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! 一 ES查询方式 ElasticSearch使用的频率是越来越高,其中关于es查询的方式也是各式各样,最近发现了一种比较好用的es查询条件buider:BoolQuer

来源: https://www.ucloud.cn/yun/129159.html 作者: IT那活儿 发布日期: 发布于2023-01-11 13:19

ElasticSearch之BoolQueryBuilder使用

点击上方“IT那活儿**”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!**

ES查询方式

ElasticSearch使用的频率是越来越高,其中关于es查询的方式也是各式各样,最近发现了一种比较好用的es查询条件buider:BoolQueryBuilder。接下来分享一下使用过程。

引入pom文件

我使用的是elasticSearch7x,在pom文件中引入以下jar包,完美搭配。

<dependency>   <groupId>org.elasticsearch.clientgroupId>   <artifactId>elasticsearch-rest-high-level-clientartifactId>   <version>7.10.2version>   <exclusions>       <exclusion>           <artifactId>elasticsearchartifactId>           <groupId>org.elasticsearchgroupId>       exclusion>       <exclusion>           <groupId>org.elasticsearch.clientgroupId>           <artifactId>elasticsearch-rest-clientartifactId>       exclusion>   exclusions>dependency><dependency>   <groupId>org.elasticsearchgroupId>   <artifactId>elasticsearchartifactId>   <version>7.10.2version>   dependency><dependency>   <groupId>org.apache.logging.log4jgroupId>   <artifactId>log4j-coreartifactId>   <version>2.18.0version>dependency><dependency>   <groupId>org.apache.logging.log4jgroupId>   <artifactId>log4j-apiartifactId>   <version>2.18.0version>dependency><dependency>   <groupId>org.elasticsearch.clientgroupId>   <artifactId>elasticsearch-rest-clientartifactId>   <version>7.10.2version>dependency><dependency>   <groupId>com.google.code.gsongroupId>   <artifactId>gsonartifactId>   <version>2.9.0version>dependency>

使用示例

Es client配置类:

Yml文件配置:

# elasticsearchspring:elasticsearch.:   jest:     proxy:       host: 192.168.X.XX       port: 9200

配置完成之后,我们接下来正式使用BoolQueryBuilder,使用之前先介绍几个查询方法:

  • 精确查找

    boolQueryBuilder.must(QueryBuilders.termQuery("demo","demo"));

  • 模糊匹配

    boolQueryBuilder.must(QueryBuilders.wildcardQuery("name", String.format("*%s*", "")));

  • 范围查询boolQueryBuilder.must(QueryBuilders.rangeQuery("startTime").gte(startTime)

接下来上一段我根据时间范围分页查询的代码:

**这里需要注意一个点:**在使用BoolQueryBuilder构建完查询条件,通过SourceBuilder转换成es查询语句时需要加上分页参数,不然查询结果默认只返回10条。

BoolQueryBuilder构建查询条件的方式还是很多的,这里就不一一举例了。这种查询方式摆脱了传统写es查询语句烦恼,代码简洁,可塑性更高

本文作者:段席超(上海新炬王翦团队)

本文来源:“IT那活儿”公众号