这里默认大家已经掌握es基础语法 es版本为7.8
pom

 <!--引入es-high-level-client的坐标--><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.8.0</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>7.8.0</version></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!--ElasticSearch相关结束-->

properties配置文件

# 应用名称
spring.application.name=search
# 应用服务 WEB 访问端口
server.port=12000
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

配置类

/*** @create: 2022/7/2* @author: Tony Stark*/
@Configuration
public class StaticSearchConfig {public static final RequestOptions COMMOM_OPTIONS;static {RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();COMMOM_OPTIONS=builder.build();}@Beanpublic RestHighLevelClient esRestClient(){return new RestHighLevelClient(RestClient.builder(new HttpHost("localhost",1001,"http")));}}

单元测试

添加数据

    @Autowiredprivate RestHighLevelClient esRestClient;@Testpublic void testEsClient() throws IOException {IndexRequest indexRequest = new IndexRequest();indexRequest.id("1");indexRequest.index("bank");indexRequest.source("username","zhangsan","age",19);//添加数据     请求参数使用默认的esRestClient.index(indexRequest, RequestOptions.DEFAULT);}

检索数据

 /*** 检索测试* @throws IOException*/@Testpublic void testEsSearch() throws IOException {SearchRequest searchRequest = new SearchRequest();//指定查询索引searchRequest.indices("bank");SearchSourceBuilder builder = new SearchSourceBuilder();//查询所有address中带有mill的builder.query(QueryBuilders.matchQuery("address","mill"));//构造聚合条件 terms为聚合条件的名字  根据age聚合  size 显示多少条TermsAggregationBuilder aggregationBuilder1 = AggregationBuilders.terms("aggAgg").field("age").size(10);//添加聚合条件builder.aggregation(aggregationBuilder1);//聚合条件二  聚合名称为balanceAvg   根据balance求平均值AvgAggregationBuilder aggregationBuilder2 = AggregationBuilders.avg("balanceAvg").field("balance");//添加聚合条件二builder.aggregation(aggregationBuilder2);System.out.println(builder.toString());searchRequest.source(builder);//执行检索SearchResponse searchResponse = esRestClient.search(searchRequest,     StaticSearchConfig.COMMOM_OPTIONS);System.out.println(searchResponse);//分析结果//获取所有查到的数据   所有命中数据  最外层SearchHits hits = searchResponse.getHits();//获取所有响应数据中的命中数据  内层hitsSearchHit[] hitsHits = hits.getHits();for (SearchHit hitsHit : hitsHits) {//遍历每条数据   获取索引String index = hitsHit.getIndex();long primaryTerm = hitsHit.getPrimaryTerm();System.out.println(index +" " +primaryTerm);
//            Map<String, Object> sourceAsMap = hitsHit.getSourceAsMap();
//            Set<Map.Entry<String, Object>> entries = sourceAsMap.entrySet();
//            for (Map.Entry<String, Object> entry : entries) {//                System.out.println(entry.getKey());
//                System.out.println(entry.getValue());
//            }String sourceAsString = hitsHit.getSourceAsString();//Account类为自己创建pojo类Account account = JSON.parseObject(sourceAsString, Account.class);System.out.println(account);//分析聚合结果  获取所有聚合数据Aggregations aggregations = searchResponse.getAggregations();//根据聚合的名字取出聚合信息Terms aggAgg = aggregations.get("aggAgg");Avg balanceAvg = aggregations.get("balanceAvg");for (Terms.Bucket bucket : aggAgg.getBuckets()) {System.out.println("年龄:"+bucket.getKey()+"------->人数:"+bucket.getDocCount());}System.out.println(balanceAvg.getName()+"平均工资---->"+balanceAvg.getValue());}}

部分结果

MallSearchApplicationTests.Account(account_number=472, balance=25571, firstname=Lee, lastname=Long, age=32, gender=F, address=288 Mill Street, employer=Comverges, email=leelong@comverges.com, city=Movico, state=MT)
年龄:38------->人数:2
年龄:28------->人数:1
年龄:32------->人数:1
balanceAvg平均工资---->25208.0

SpringBoot2.2.X整合ElasricSearch7.8相关推荐

  1. SpringBoot2.3.x整合ElasticSearch7.6.2 实现PDF,WORD全文检索

    文章目录 1.下载安装,只下载elasticSearch.Kibana即可 插件安装 定义文本抽取管道 2.SpringBoot整合ElasticSearch application.yml 实体类 ...

  2. SpringCloudAlibaba篇(八)SpringCloudGateWay聚合swagger3、SpringBoot2.6.X整合swagger3+knife4j

    上一篇,SpringCloudAlibaba篇(七)SpringCloud整合Zipkin分布式链路跟踪系统(SpringCloud+dubbo+Zipkin) 文章目录 前言 服务端 构建依赖 配置 ...

  3. SpringBoot2.x教程--整合使用jOOQ面向对象查询

    一. jOOQ简介 1.jOOQ概述 jOOQ(Java Object Oriented Querying): 翻译成中文是 Java面向对象查询 的意思. jOOQ是Data Geekery提供的基 ...

  4. 基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis

    SpringBoot 整合 Mybatis 有两种常用的方式,一种就是我们常见的 xml 的方式 ,还有一种是全注解的方式.我觉得这两者没有谁比谁好,在 SQL 语句不太长的情况下,我觉得全注解的方式 ...

  5. SpringBoot2.1.4整合log4j2保存日志到MySQL中

    一.框架版本 springboot2.1.4,log4j2(2.11.2),MySQL5.7 maven依赖请自行上网百度,本文不再赘述,网上大多是基于log4j2-spring.xml方式配置jdb ...

  6. springboot2.5.0 整合 redis 配置详解

    1. pom添加依赖 <!--redis--><dependency><groupId>org.springframework.boot</groupId&g ...

  7. springboot2.0.4整合log4j2不生效

    log4j2的配置文件名为log4j2-spring.xml <dependency><groupId>org.springframework.boot</groupId ...

  8. OKTA==springboot2.5.4整合OKTA实现单点登录demo

    SSO demo with Okta and spring boot - YouTube 整体流程 去okta注册后会自动生成一个教程,点击 Create your web application 设 ...

  9. 使用SpringBoot2.0.3整合SpringCloud

    学习更多Java干货,戳上面的 蓝色字题 关注我! 最近开始学习SpringCloud,在此把我学习的过程记录起来,跟大家分享一下,一起学习.想学习SpringCloud的同学赶快上车吧.本次学习使用 ...

  10. 记一次springboot2.3.*项目整合elasticsearch7.6.2实现中文拼音分词搜索

    一.elasticsearch官网下载:Elasticsearch 7.6.2 | Elastic 二.拼音.ik.繁简体转换插件安装 ik分词:GitHub - medcl/elasticsearc ...

最新文章

  1. 5- RAC 集合 RACTuple RACSequence
  2. 独家 | 一文带你盘点最新热门技术话题,技术圈潮人必读!
  3. Js弹性漂浮广告代码
  4. isulad代替docker_云原生时代的华为新“引擎”:iSula | Linux 中国
  5. 最好的FLV视频下载器 维棠 (支持优酷视频下载、土豆视频下载等)
  6. 利用hibernate中的SchemaExport生成数据表
  7. 断点调试 debug模式 1006
  8. python函数定义及调用-Python函数的基本定义和调用以及内置函数
  9. php图片翻转函数,PHP图片处理之图片旋转和图片翻转实例
  10. UniWebView for Unity移动端浏览器插件的一些基本情况
  11. PGP加密并签名邮件 实验
  12. JavaWeb - 国家语言代码表
  13. 李笑来《财富自由之路》思维导图
  14. word里画的流程图怎么全选_流程图怎么做?用Word制作流程图超方便!
  15. JAVA圆和正方形组合图形_关于java:图形数据流组合框架
  16. Ant Design Pro从零到一(页面创建)
  17. 【搜索】桐桐的运输方案
  18. 第五人格显示连接服务器失败怎么办,第五人格提示重新连接服务器怎么办 连接服务器失败解决方法...
  19. 完美世界手游服务器维护中,完美世界手游黑屏闪退解决办法 玩不了怎么办
  20. 松下A6伺服速度控制模式

热门文章

  1. 如何解决卸载McAfee时出现“处于托管模式时无法删除”问题(转)
  2. 车牌号识别 OpenCV
  3. typedef的4种常见用法
  4. phpQuery—基于jQuery的PHP实现
  5. Kali、linux中安装软件
  6. GetLastError返回代码含义
  7. 手机型号修改 修改手机型号,在QQ空间想朋友展示个性化的手机型号
  8. IPAD2降级ios6教程整合
  9. android ssh软件,优秀的 Android SSH 工具推荐
  10. 文件版本转换( AutoCAD、3dMax、SketchUp高版本转低版本 )