SpringBoot整合Elasticsearch(最新最全,高效安装到使用)
创始人
2024-11-13 01:04:42
0
  • 一、安装Elasticsearch相关插件
    • 1.选择版本
      • 2.安装Elasticsearch
      • 3.安装node
      • 4.安装grunt
      • 5.安装es-head插件
      • 6.安装kibana
      • 7.安装ik分词器
  • 二、整合SpringBoot和Elasticearch
    • 1.pom.xml
      • 2.application.yml
      • 3.ElasticSearch(实体类)
      • 4.ElasticSearchRepository
      • 5.ElasticSearchService
      • 6.ElasticSearchServiceImpl
      • 7.EsTest
      • 8.自定义查询方式

一、安装Elasticsearch相关插件

1.选择版本

为了避免使用的Elasticsearch版本和SpringBoot采用的版本不一致导致的问题,尽量使用一致的版本。下表是对应关系:

在这里插入图片描述
我的SpringBoot版本:

    org.springframework.boot     spring-boot-starter-parent     2.5.15        

所以选择对应Elasticsearch版本为7.12.0。

2.安装Elasticsearch

Elasticsearch各版本下载
Elasticsearch7.12.0官网下载

  1. 下载上面链接的安装包
  2. 解压到任意目录
  3. 启动es /bin/elasticsearch.bat
  4. 查看安装结果,在网页输入localhost:9200,出现下图即为成功

在这里插入图片描述

这时可能会存在一个问题,用localhost可以访问到,用ip访问不到
需要修改Elasticsearch安装目录下的/config/elasticsearch.yml,在58行添加如下设置

network.bind_host: 0.0.0.0  

添加完成后,重新启动es服务,可能会出现闪退问题
其中如果问题为:bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
需要把Elasticsearch安装目录下的/config/elasticsearch.yml中大概77行位置的

#cluster.initial_master_nodes: ["node-1", "node-2"]  

注释放开,改为

cluster.initial_master_nodes: ["node-1"]  

3.安装node

es5以上就需要安装node和grunt,所以安装head插件的前提,是需要把该两项配置好。

node下载地址下载对应环境的node版本安装即可。

安装过程结束后,在dos窗口查看是否安装成功,使用命令:node -v,出现如下截图,则说明安装成功。

在这里插入图片描述

4.安装grunt

在node安装路径下,使用命令安装:npm install -g grunt-cli 安装grunt。 安装结束后,使用命令grunt
-version查看是否安装成功,出现如下截图,说明安装成功。

在这里插入图片描述

5.安装es-head插件

方便查看ES中的索引及数据

es-head下载地址

解压elasticsearch-head-master
在该目录下进入cmd命令,执行npm install

在这里插入图片描述

执行完成后运行命令 grunt server
grunt server是启动命令
如果出现报错

在这里插入图片描述

则使用 cmd继续执行npm install grunt --save-dev。 这将向package.json添加最新版本。

在这里插入图片描述

如果不报错,则命令窗显示

在这里插入图片描述

浏览器输入127.0.0.1:9100

在这里插入图片描述

这里其实无法连接到elasticsearch, 还需要解决跨域问题
由于前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
修改Elasticsearch安装目录下的/config/elasticsearch.yml,添加如下设置

http.cors.enabled: true http.cors.allow-origin: "\*" http.cors.allow-credentials: true http.cors.allow-headers: Content-Type,Accept,Authorization,x-requested-with #http.cors.allow-headers: "\*"  

重启ES服务

在这里插入图片描述

6.安装kibana

用途:便于通过rest api调试ES。

kibana官方7.12.0下载地址
kibana中文社区下载地址

  1. 解压
  2. 修改 kibana-7.12.0-windows-x86_64/config/kibana.yml 32行
  3. 改为elasticsearch.hosts: [“http://127.0.0.1:9200”]
  4. 保存之后,运行bin/kibana.bat
  5. 浏览器中访问kibana首页首页链接

在这里插入图片描述

直接访问开发工具:开发工具

在这里插入图片描述

如果想使用ip访问kibana,需要修改 kibana-7.12.0-windows-x86_64/config/kibana.yml 7行
改为 server.host: “0.0.0.0”
如果想使用kibana汉化 需要修改 kibana-7.12.0-windows-x86_64/config/kibana.yml 最后一行
i18n.locale: “zh-CN”

7.安装ik分词器

注意:下载的ik分词器版本号要和安装的elasticsearch版本一致

把下载的ik分词器解压至Elasticsearch的安装目录/plugins/ik内。

在这里插入图片描述

  1. 测试ik分词器
  2. 重启elasticsearch
  3. 重启kibana
  4. 进入kibana的开发工具中执行命令测试 开发工具
  5. 执行命令: GET _analyze{ “analyzer”: “ik_max_word”, “text”: “折上折满减”}
  6. 执行结果如下
    在这里插入图片描述

二、整合SpringBoot和Elasticearch

1.pom.xml

     org.springframework.boot     spring-boot-starter-parent     2.5.15              org.elasticsearch     elasticsearch     7.12.0        org.springframework.boot     spring-boot-starter-data-elasticsearch   

2.application.yml

spring: 	elasticsearch:        rest:             uris: 192.168.1.36:9200             connection-timeout: 1s             read-timeout: 30s  

3.ElasticSearch(实体类)

import lombok.Data; 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;  //@Document 文档对象 (索引信息、文档类型 ) @Document(indexName="blog3") @Data public class ElasticSearch {      //@Id 文档主键 唯一标识     @Id     //@Field 每个文档的字段配置(类型、是否分词、是否存储、分词器 )     @Field(store=true, index = false,type = FieldType.Integer)     private Integer id;      @Field(index=true,analyzer="ik\_smart",store=true,searchAnalyzer="ik\_smart",type = FieldType.Text)     private String title;      @Field(index=true,analyzer="ik\_smart",store=true,searchAnalyzer="ik\_smart",type = FieldType.Text)     private String content;      @Field(index=true,store=true,type = FieldType.Double)     private Double price; }   

4.ElasticSearchRepository

import com.economics.project.es.domain.ElasticSearch; import org.springframework.data.elasticsearch.annotations.Highlight; import org.springframework.data.elasticsearch.annotations.HighlightField; import org.springframework.data.elasticsearch.annotations.HighlightParameters; import org.springframework.data.elasticsearch.core.SearchHit; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.stereotype.Repository; import java.util.List;  @Repository public interface ElasticSearchRepository extends ElasticsearchRepository {      /\*\*  \* 查询内容标题查询  \* @param title 标题  \* @param content 内容  \* @return 返回关键字高亮的结果集  \*/     @Highlight(             fields = {@HighlightField(name = "title"), @HighlightField(name = "content")},             parameters = @HighlightParameters(preTags = {""}, postTags = {""}, numberOfFragments = 0)     )     List> findByTitleOrContent(String title, String content);  }   

5.ElasticSearchService

  **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**  **深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**  **因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。** ![img](https://img-blog.csdnimg.cn/img_convert/9ce413ec9100ee8b27bd84e05fe887a5.png) ![img](https://img-blog.csdnimg.cn/img_convert/3d19ff5ee5c905f3223a54c18dd9c911.png) ![img](https://img-blog.csdnimg.cn/img_convert/06b66eb1b638cac77e756d5c4c6d07a4.png) ![img](https://img-blog.csdnimg.cn/img_convert/06173267c69a43eac53885b6735d0f02.png) ![img](https://img-blog.csdnimg.cn/img_convert/e2332a1d09c540ed04a7b6928c35f90b.png)  **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**  **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**  **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)** ![img](https://img-blog.csdnimg.cn/img_convert/3ca4ea9ca55753d7435a98dfb9fb8b29.png)  单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。** [外链图片转存中...(img-jlt3zmZF-1712862424354)] [外链图片转存中...(img-8Hr3YnXK-1712862424354)] [外链图片转存中...(img-V1hFk2f3-1712862424355)] [外链图片转存中...(img-Ce2gPwhd-1712862424355)] [外链图片转存中...(img-E0r7qEB7-1712862424355)]  **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**  **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**  **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)** [外链图片转存中...(img-kJSdTB1h-1712862424356)]  

相关内容

热门资讯

秒懂教程!微信的牛牛房卡怎么弄... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享受...
一分钟推荐“拼三张金花房卡找谁... 新七喜是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来...
秒懂教程!拼三张房卡购买联系方... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
正版授权“微信炸金花房间怎么创... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
秒懂教程!微信群牛牛房间怎么开... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...
秒懂教程“微信金花群怎么买房卡... 冷酷大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
秒懂教程!微信群拼三张房间卡买... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
一分钟了解“炸金花房卡专卖店联... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
安卓系统彩蛋怎么开的,揭秘隐藏... 你有没有发现,安卓系统里藏着不少小秘密呢?今天,就让我来带你一探究竟,揭秘安卓系统里的那些彩蛋吧!一...
秒懂教程!炸金花房卡如何购买,... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
一分钟推荐“微信金花链接房卡怎... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
秒懂教程!微信怎么开炸金花房间... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享...
房卡必备教程“微信炸金花房卡在... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
魅族系统属于安卓系统吗,深度解... 魅族系统属于安卓系统吗?亲爱的读者们,你是否曾好奇过魅族手机所搭载的魅族系统,它究竟是不是安卓系统呢...
秒懂教程!怎么创建拼三张房间卡... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
秒懂教程“牛牛链接房卡找谁购买... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
秒懂教程!微信的拼三张房卡怎么... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
秒懂教程“牛牛金花房卡是如何购... 牛牛大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
一分钟实测分享”新果汁大厅怎么... 一分钟实测分享”新果汁大厅怎么买房卡“炸金花房间卡怎么购买游戏中心打开微信,添加客服【1138577...
秒懂教程!微信牛牛房卡如何购买... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...