这是我参与8月更文挑战的第28天,活动详情查看:8月更文挑战
| 作者:江夏
| CSDN:blog.csdn.net/qq_41153943
| 知乎:www.zhihu.com/people/1024…
| GitHub:github.com/JiangXia-10…
本文大概6532字,读完共需18分钟
1、什么是ElasticSearch
在说ElasticSearch之前先来说说什么是搜索引擎。搜索引擎,即Search Engine,是一个帮助用户搜索他们需要内容的计算机程序,即把计算机中存储的信息与用户的信息需求(information need)相匹配,并把匹配的结果展示出来。简单点说,搜索引擎就是万维网环境中的为了使网民搜索信息的速度更加快捷、准确信息检索系统。常见的搜索引擎有百度、谷歌、搜狗等。
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,它提供了一个基于 RESTful web 接口的分布式多用户能力的全文搜索引擎,能够达到实时搜索、稳定、可靠、快速、安装使用方便等特点。它不仅包括了全文搜索功能,还可以进行以下工作:
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
- 实时分析的分布式搜索引擎。
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
这篇文章就记录一下 SpringBoot 与 ElasticSearch 的整合。
2、ElasticSearch 安装
前面说到Elasticsearch是用Java语言开发的,所以在安装Elasticsearch之前需要先安装配置java环境。
然后登录www.elastic.co/cn/download… 选择相应的系统环境下载软件包,这里的下载应该会很慢。
这里介绍Mac、Linux、Windows系统三种安装ElasticSearch的方式。2.1、Mac安装ElasticSearch
2.1、MacOS安装ElasticSearch
首先下载对应的MacOS的安装包。
homebrew安装
1 | 复制代码brew install elasticsearch |
运行
- 查看状态
$ brew services list
- 启动
$ brew services start elasticsearch
- 重启
$ brew services restart elasticsearch
- 停止
$ brew services stop elasticsearch
浏览器输入 http://localhost:9200 查看ES是否运行
2.2、Linux安装ElasticSearch
进入到对应上传的文件夹,安装ElasticSearch
1 | 复制代码rpm -ivh elasticsearch-6.1.0.rpm |
查找安装路径
1 | 复制代码rpm -ql elasticsearch |
一般是装在/usr/share/elasticsearch/下。
然后设置data的目录:创建/data/es-data目录,用于elasticsearch数据的存放
1 | bash复制代码mkdir -p /data/es-data |
修改该目录的拥有者为elasticsearch
1 | bash复制代码chown -R elasticsearch:elasticsearch /data/es-data |
然后设置log的目录。
1 | perl复制代码mkdir -p /log/es-log |
修改该目录的拥有者为elasticsearch。
1 | perl复制代码chown -R elasticsearch:elasticsearch /log/es-log |
修改配置文件elasticsearch.yml。
1 | bash复制代码vim /etc/elasticsearch/elasticsearch.yml |
修改如下内容:
1 | makefile复制代码#设置节点名称 |
启动elasticsearch。
1 | sql复制代码systemctl start elasticsearch |
查看状态
1 | lua复制代码systemctl status elasticsearch |
设置开机启动
1 | bash复制代码systemctl enable elasticsearch |
启动成功之后,测试服务是否开启,或者浏览器访问。
1 | arduino复制代码curl -X GET http://localhost:9200 |
返回如下信息,说明安装、启动成功了。
1 | json复制代码{ |
2.3、Windows安装ElasticSearch
下载安装包,解压,然后双击执行 bin/elasticsearch.bat进行安装。
安装完成后运行命令提示符
1 | 复制代码elasticsearch.bat -d |
或者直接双击执行elasticsearch.bat
浏览器输入 http://localhost:9200 查看ES是否运行。
或者下载cURL,使用cURL的方式验证:
curl ‘http://localhost:9200/?pretty‘
返回结果同上,则安装成功。
3、SpringBoot 整合 ElasticSearch
上面的都是准备工作。安装好ElasticSearch之后,就使用SpringBoot来整合ElasticSearch 进行实战开发。SpringBoot 提供了 ElasticSearch 依赖库,只需要添加依赖包,通过 JPA 访问非常方便。
首先创建一个SpringBoot项目,我这里使用的IDEA,如果还不会使用创建springboot项目的可以参考这篇文章:SpringBoot入门:使用IDEA和Eclipse构建第一个SpringBoot项目。
创建好springboot项目之后,在pom.xml中,添加依 ElasticSearch和JPA 的依赖包,代码如下:
1 | xml复制代码<!--jpa 支持--> |
之后新建一个application.properties文件,然后添加ElasticSearch相关的配置:
1 | ini复制代码spring.data.elasticsearch.cluster-name=my ElasticSearch |
这里我在数据库创建了一个user表,并插入数据。
建表语句:
1 | sql复制代码CREATE TABLE `user` ( |
插入数据:
1 | sql复制代码INSERT INTO `user` VALUES ('1', '1@qq.com', '123456', '张三'); |
前面的都是一些准备的工作,后面开始正式些后台的代码。首先新建一个实体类,命名为,User,代码如下:
1 | less复制代码@Data |
这里使用 JPA 作为数据持久层,接口继承自ElasticsearchRepository,同时新增两个自定义查询方法。关于JPA的使用可以参考:SpringBoot整合JPA进行数据访问 。
1 | typescript复制代码public interface userRepository extends ElasticsearchRepository<Student, String> { |
创建控制层,核心逻辑代码如下:
1 | less复制代码@RestController |
然后开始写前端页面,用来结果的展示。在webapp下新建一个index.html文件,代码如下:
1 | xml复制代码<!DOCTYPE html> |
运行项目项目,测试结果如下:
4、Ending
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。所以Elasticsearch 真正强大和公司使用较多的是在海量数据查询方面。但由于实际数据量和篇幅有限,这里只是简单的介绍一下有关Elasticsearch 入门相关的知识,感兴趣的同学可以后续继续学习Elasticsearch 相关的知识,如果有问题或不正确的地方可以在下方或后台留言讨论交流。
往期推荐
本文转载自: 掘金