原标题:SpringBoot2.x教程——SpringBoot整合ElasticSearch方式一
一. Elastic Search
1. Elastic Search简介
ElasticSearch是一个基于Lucene的开源的、分布式实时搜索和分析引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
Spring Boot为Elasticsearch提供基本的自动配置,我们可以利用Spring Data Elasticsearch在Spring Boot中进行开发。
2. 搭建配置Elastic Search环境
在利用Elastic Search开发之前,请先搭建好Elastic Search环境,我这里配置了ELK环境。关于ELK环境的搭建,感兴趣的朋友可以自行搜索。
3. Spring Boot与Elastic Search版本关系
在新版本的Spring boot2.x中,spring-boot-starter-data-elasticsearch支持的Elasticsearch版本是2.X,但Elasticsearch实际上已经发展到6.5.X版本了,为了更好的使用Elasticsearch的新特性,我们可以弃用spring-boot-starter-data-elasticsearch依赖,改为直接使用Spring-data-elasticsearch,以便启用对新版本支持,目前的版本对应关系如下:
二. Spring Boot2.2.5整合Elastic Search 5.6.8
1. 环境要求
Spring Boot 2.2.5;
Elastic Search 5.6.8;
Kibana 5.6.8;
Maven
2. 创建web项目
我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。
3. 添加依赖包
org.springframework.boot
spring-boot-starter-data-elasticsearch
注意:因为我的elastic search 并不是6.5.x以上的最新版本,而是5.6.8版本,所以我这里使用的还是spring-boot-starter-data-elasticsearch的依赖包。
4. 创建application.yml配置文件
# Elasticsearch
# 9200作为Http协议,主要用于外部通讯,而9300作为Tcp协议,是传输层监听的默认端口,jar之间就是通过tcp协议通讯
elasticsearch:
#注意cluster.name需要与config/elasticsearch.yml中的cluster.name一致
# Elasticsearch cluster name.
cluster:
name: elasticsearch
# Comma-separated list of cluster node addresses.
ip: localhost
port: 9300
pool: 5
elastic search默认的端口号是9300。
5. 创建ElasticSearchConfig配置类
package com.yyg.boot.config;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org