资讯专栏INFORMATION COLUMN

ElasticSearch之BoolQueryBuilder使用

IT那活儿 / 1657人阅读
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文件配置:
# elasticsearch
spring:
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那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129159.html

相关文章

  • Elasticsearch search使用几点总结

    摘要:一使用进行匹配的时候匹配的时候,如果想尽可能的多检索结果,考虑使用如果想尽可能精确的匹配分词结果,考虑使用如果短语匹配的时候,怕遗漏,考虑使用。 一、使用match进行匹配的时候: 1.匹配的时候,如果想尽可能的多检索结果,考虑使用match; 2.如果想尽可能精确的匹配分词结果,考虑使用match_phrase; 3.如果短语匹配的时候,怕遗漏,考虑使用match_phrase_pr...

    DobbyKim 评论0 收藏0
  • elasticSearch升级记录 ver.1.4.5→ver.5.2.0

    摘要:前言项目中的由升级至。已经弃用,相应功能由实现,直接替换即可。构造报文调整调整成弃用,相关功能由实现。类型表示精确查找的文本,不需要进行分词。查询字段时,使用表示改版后,设置了的情况下,也要设置,否则会报。 前言 项目中的es由ver.1.4.5升级至ver.5.2.0。 安装elasticSearch #下载 wget https://artifacts.elastic.co/dow...

    姘搁『 评论0 收藏0
  • 慕课网_《ElasticSearch入门》学习总结

    摘要:时间年月日星期四说明本文部分内容均来自慕课网。那么里面的数据就可以分为各种各样的索引,比如汽车索引图书索引家具索引等等。图书索引又可以细分为各种类型,比如科普类小说类技术类等等。具体到每一本书籍,就是文档,就是整个图书里面最小的存储单位。 时间:2017年09月14日星期四说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学源码:无学习源码:https...

    notebin 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<