请注意,SpringBoot是2.2.0.RELEASE才兼容elasticsearch 7.x

废话不多说,直接上代码。

1、pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.cntaiping.tpa</groupId><artifactId>ems</artifactId><version>0.0.1-SNAPSHOT</version><name>ems</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><repositories><repository><id>nexus-aliyun</id><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></repository></repositories><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.cntaiping.tpa.EmsApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

2、application.properties

server.port=8080
server.servlet.context-path=/ems#https://blog.csdn.net/haohaifeng002/article/details/102887921
spring.elasticsearch.rest.uris=http://localhost:9200
spring.elasticsearch.rest.username=elastic
spring.elasticsearch.rest.password=123456

3、实体类

package com.cntaiping.tpa.bean;import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;@Data
@NoArgsConstructor
@Accessors(chain = true)
@Document(indexName = "ems",type = "_doc", shards = 1, replicas = 0)
public class DocBean {@Idprivate Long id;@Field(type = FieldType.Keyword)private String firstCode;@Field(type = FieldType.Keyword)private String secordCode;@Field(type = FieldType.Text, analyzer = "ik_max_word")private String content;@Field(type = FieldType.Integer)private Integer type;public DocBean(Long id,String firstCode,String secordCode,String content,Integer type){this.id=id;this.firstCode=firstCode;this.secordCode=secordCode;this.content=content;this.type=type;}
}

4、持久化层

package com.cntaiping.tpa.dao;
import com.cntaiping.tpa.bean.DocBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.annotations.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface ElasticRepository extends ElasticsearchRepository<DocBean, Long> {//默认的注释//@Query("{\"bool\" : {\"must\" : {\"field\" : {\"content\" : \"?\"}}}}")Page<DocBean> findByContent(String content, Pageable pageable);@Query("{\"bool\" : {\"must\" : {\"field\" : {\"firstCode.keyword\" : \"?\"}}}}")Page<DocBean> findByFirstCode(String firstCode, Pageable pageable);@Query("{\"bool\" : {\"must\" : {\"field\" : {\"secordCode.keyword\" : \"?\"}}}}")Page<DocBean> findBySecordCode(String secordCode, Pageable pageable);}

5、业务逻辑层

package com.cntaiping.tpa.service;import com.cntaiping.tpa.bean.DocBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;import java.util.Iterator;
import java.util.List;public interface IElasticService {void createIndex();void deleteIndex(String index);void save(DocBean docBean);void saveAll(List<DocBean> list);Iterator<DocBean> findAll();Page<DocBean> findByContent(String content);Page<DocBean> findByFirstCode(String firstCode);Page<DocBean> findBySecordCode(String secordCode);Page<DocBean> query(String key);
}
package com.cntaiping.tpa.service.impl;import com.cntaiping.tpa.bean.DocBean;
import com.cntaiping.tpa.dao.ElasticRepository;
import com.cntaiping.tpa.service.IElasticService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.stereotype.Service;import javax.print.Doc;
import java.util.Iterator;
import java.util.List;@Service("elasticService")
public class ElasticServiceImpl implements IElasticService {@Autowiredprivate ElasticsearchRestTemplate elasticsearchTemplate;@Autowiredprivate ElasticRepository elasticRepository;private Pageable pageable = PageRequest.of(0,10);@Overridepublic void createIndex() {elasticsearchTemplate.createIndex(DocBean.class);}@Overridepublic void deleteIndex(String index) {elasticsearchTemplate.deleteIndex(index);}@Overridepublic void save(DocBean docBean) {elasticRepository.save(docBean);}@Overridepublic void saveAll(List<DocBean> list) {elasticRepository.saveAll(list);}@Overridepublic Iterator<DocBean> findAll() {return elasticRepository.findAll().iterator();}@Overridepublic Page<DocBean> findByContent(String content) {return elasticRepository.findByContent(content,pageable);}@Overridepublic Page<DocBean> findByFirstCode(String firstCode) {return elasticRepository.findByFirstCode(firstCode,pageable);}@Overridepublic Page<DocBean> findBySecordCode(String secordCode) {return elasticRepository.findBySecordCode(secordCode,pageable);}@Overridepublic Page<DocBean> query(String key) {return elasticRepository.findByContent(key,pageable);}
}

6、控制层

package com.cntaiping.tpa.controller;import com.cntaiping.tpa.bean.DocBean;
//import com.cntaiping.tpa.bean.FundInfoBean;
import com.cntaiping.tpa.service.IElasticService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;@Log4j2
@RestController
@RequestMapping("/elastic")
public class ElasticController {@Autowiredprivate IElasticService elasticService;@GetMapping("/init")public void init(){elasticService.createIndex();List<DocBean> list =new ArrayList<>();list.add(new DocBean(1L,"XX0193","XX8064","xxxxxx",1));list.add(new DocBean(2L,"XX0210","XX7475","xxxxxxxxxx",1));list.add(new DocBean(3L,"XX0257","XX8097","xxxxxxxxxxxxxxxxxx",1));elasticService.saveAll(list);}@GetMapping("/all")public Iterator<DocBean> all(){return elasticService.findAll();}}

7、运行

http://localhost:8080/ems/elastic/init

http://localhost:8080/ems/elastic/all

完整教程:Springboot 2.2整合elasticsearch 7.x (spring-boot-starter-data-elasticsearch)相关推荐

  1. ElasticSearch教程与实战:从搭建服务到Spring Boot整合

    目录 写在前面 Elasticsearch是什么?可以解决什么问题? 关于Elasticsearch版本的选择 Elasticsearch的几个基本概念 索引(index) 类型(type) 文档(d ...

  2. Elasticsearch实战篇——Spring Boot整合ElasticSearch

    2019独角兽企业重金招聘Python工程师标准>>> 当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来 ...

  3. ElasticSearch实战篇 - Spring Boot 整合 ElasticSearch

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:冯文议 链接:segmentfault.com/a/1190000018625101 当前Spring Boot很是流行,包括我自己, ...

  4. springboot tomcat配置_告诉你,Spring Boot 真是个牛逼货!

    现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下. Spring Boot ...

  5. springboot java获取版本号_深入实践Spring Boot 实战篇,大佬整理出的PDF文档

    如何使用Spring Boot 本文章将会详细介绍如何使用Spring Boot.它覆盖了构建系统,自动配置和运行/部署选项等主题.我们也覆盖了一些Spring Boot最佳实践.尽管Spring B ...

  6. Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式

    前面我们已经介绍了spring boot整合Elasticsearch的jpa方式,这种方式虽然简便,但是依旧无法解决我们较为复杂的业务,所以原生的实现方式学习能够解决这些问题,而原生的学习方式也是E ...

  7. springboot做网站_Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!

    " 本文已经收录进:awesome-java (Github 上非常棒的 Java 开源项目集合) 很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Bo ...

  8. springboot templates读取不到_精通 Spring Boot 系列 04

    阅读全文,约 12 分钟这是江帅帅的第004篇原创 1. Web 开发的支持 使用 Spring Boot 实现 Web 开发更加便捷了,因为直接依赖 spring-boot-starter-web ...

  9. springboot项目结构_从零搭建Spring Boot脚手架(1):开篇以及技术选型

    1. 前言 目前Spring Boot已经成为主流的Java Web开发框架,熟练掌握Spring Boot并能够根据业务来定制Spring Boot成为一个Java开发者的必备技巧,但是总是零零碎碎 ...

  10. springboot 创建地址_手把手教你Spring Boot入门开发

    前言:springboot如今在技术领域非常流行,不仅能够简化web项目的开发,提升开发效率,而且也是面试官最喜欢的问题之一,今天笔者对springboot做一个简要入门实例讲解,抛砖引玉. 1. S ...

最新文章

  1. 干货 | 目标检测技巧大汇总(含代码与解读)
  2. GitHub免费提供机器学习扫描代码漏洞,现已支持JavaScript/TypeScript
  3. 新版pycharm,亮瞎我的狗眼
  4. PR 简单使用(一)
  5. $_SERVER详细讲解
  6. 数据结构(三)插入排序
  7. uc的剪切板能关掉吗_创意手工 | 一张纸折出专属礼品袋,漂亮简单还实用!你爱了吗?!...
  8. 把e.printStackTrace的堆栈信息打印在log.error()中
  9. 服务器租用的6大安全知识分析
  10. 今年中秋云遮月,来年元宵雨打灯
  11. Ace Admin前端框架笔记一概要与布局介绍
  12. 2022年信息安全工程师考试知识点:信息系统安全测评
  13. 阿拉伯数字转中国人民币大写字符串
  14. 烟雨黑帽seo超级模板站群-可一键清除内页URL转换成单页-百度搜狗超级模板站群-多城市网站站群
  15. 脑肿瘤的影像组学:图像评估、定量特征描述和机器学习方法
  16. Typora简单传图(Typora+PicGo-Core+SMMS/阿里云OSS 实现图床)
  17. 理财产品信息管理系统项目代码分享
  18. Unity学习 — 23种设计模式
  19. 斯坦福大学CS106A公开课笔记--启示环境配置
  20. webi安装ubuntu13.1时,选择空间为30G安装好后空间只有11.9G?

热门文章

  1. 作为开发者必须知道的5个安卓应用推广方式
  2. JavaEE - Linux基本使用和程序部署
  3. 利用Poi-tl将富文本Html转换为Word文件
  4. 加速乐cookie爬虫
  5. 高端大气上档次的管理后台模板
  6. NBOOT、EBOOT、UBOOT介绍
  7. [学习笔记]快速沃尔什变换 (FWT)
  8. 阿里 c++ 编码规范 百度网盘_阿里云网盘,内测资格,开放申请了!非会员下载 10MB/s...
  9. 唐骏的八大“职业经理潜规则”辨析
  10. symfony老版本自主学习