SpringBoot 整合 Elasticsearch (超详细)

2年前基础语言17691
SpringBoot 整合 Elasticsearch (超详细) 流年若逝 于2022-06-10 11:52:23发布 7470 收藏 29 分类专栏: 实战项目 文章标签: elasticsearch spring boot 搜索引擎 实战项目 专栏收录该内容 28 篇文章 6 订阅 订阅专栏

📢 本文章通过实战记录相关问题以及提供解决方案。 👤 公众号:恩故事还在继续

目录 1. 环境需求1.1 Elasticsearch 安装1.2 Elasticsearch ik 安装1.3 postman 安装 2. 测试 Elasticsearch是否安装成功3. SpingBoot 整合 Elasticsearch3.1 配置 spring-boot-starter-data-elasticsearch 依赖3.2 启动 elasticsearch 失败解决方法3.3 elasicsearch 版本冲突解决方案 4. 参考文献5. 联系我

1. 环境需求

为了完成 Spring Boot 与 Elasticsearch 整合需要安装下面工具

1. springboot 2.1.5 2. elasticsearch 6.4.3 3. elasticsearch ik 6.4.3 4. postman (这个任意) 1.1 Elasticsearch 安装

🔗 Elasticsearch 官网 🔗 Elasticsearch 6.4.3 下载链接

配置环境变量 点击我的电脑 -> 高级系统设置 -> 环境变量 -> 系统变量 -> Path D:\elasticsearch-6.4.3\bin 修改解压后 config 文件下的 elasticsearch.yml 自定义下面三个变量的属性 cluster.name: nowcode 如果不修改默认是 Linux 的地址 path.data: d:\data\elasticsearch_data path.logs: d:\data\elasticsearch_log 1.2 Elasticsearch ik 安装

🔗 Elasticsearch ik 官网下载地址

🔗 Elasticserch ik 6.4.3 版本下载地址

解压 elasticsearch ik 到指定目录 (这里有个小坑需要注意) 我们首先在 elasticsearch 解压的目录下面找到 D:\elasticsearch-6.4.3\plugins 在 plugins 目录下面新建 ik 文件夹 然后将 elasticsearch ik 解压到 plugins 文件夹下 注意: 千万不要将 elasticsearch-analysis-ik-6.4.3 这个文件夹解压到 ik 里面 我们只需要 elasticsearch-analysis-ik-6.4.3 下一级的内容解压到 ik 即可 1.3 postman 安装

🔗 Postman 官网下载链接

2. 测试 Elasticsearch是否安装成功 首先,在 D:\elasticsearch-6.4.3\bin 打开 elasticsearch.bat 然后, windows + R 输入 cmd 分别使用下面这些命令进行测试: 查看健康状态 curl -X GET “localhost:9200/_cat/health?v“ 查看节点 curl -X GET “localhost:9200/_cat/nodes?v“ 查看索引 curl -X GET "localhost:9200/_cat/indices?v" 新建索引 curl -X PUT "localhost:9200/test" 删除索引 curl -X DELETE "localhost:9200/test" 3. SpingBoot 整合 Elasticsearch 3.1 配置 spring-boot-starter-data-elasticsearch 依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-elasticsearch --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> <version>2.1.6.RELEASE</version> </dependency> 在 application.properties 配置 ElasticserachProperties: spring.data.elasticsearch.cluster-name=nowcoder spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300 3.2 启动 elasticsearch 失败解决方法 原因是 netty 启动冲突问题, 需要在 CommunityApplication 编写 init() package org.example.community; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import javax.annotation.PostConstruct; @SpringBootApplication public class CommunityApplication { @PostConstruct public void init(){ // 解决 netty 启动冲突问题 // see Netty4Utils.setAvailableProcessors() System.setProperty("es.set.netty.runtime.available.processors", "false"); } public static void main(String[] args) { SpringApplication.run(CommunityApplication.class, args); } } 3.3 elasicsearch 版本冲突解决方案 按照课程流程走的话 elasticsearch 版本和 elasticsearch ik 都是 6.4.3 其次就是Springboot 版本必须是 2.1.5, 高版本的话建议将 Springboot 降低到低版本 如果上面版本太高或者太低会出现各种不兼容的问题

具体做法如下所示:

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <!-- <version>2.5.12</version>--> <version>2.1.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>

在 pom.xml 文件里面将原来的 version 版本修改为 2.1.5 ,然后 maven 会自动将 2.1.5 需要的配置添加进去,我们这时候需要等待一会,接着我们这样操作:

在 IDEA 中点击 File -> invaildate and restart

当编译器再次启动的时候就可以了。

4. 参考文献

🔗 1. SpringBoot 整合 Elasticsearch

5. 联系我

相关文章

【云原生】什么是云原生?云原生篇章序幕

【云原生】什么是云原生?云原生篇章序幕...

2022年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程

2022年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程...

【云原生 • Docker】docker 入门、docker 与虚拟机对比、docker 组件

【云原生 • Docker】docker 入门、docker 与虚拟机对比、docker 组件...

滤波笔记一:卡尔曼滤波(Kalman Filtering)详解

滤波笔记一:卡尔曼滤波(Kalman Filtering)详解...

猿创征文|弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路

猿创征文|弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路...

机器学习强基计划4-4:详解半朴素贝叶斯分类AODE原理(附Python实现)

机器学习强基计划4-4:详解半朴素贝叶斯分类AODE原理(附Python实现)...