初识Elasticsearch

前阵子很无聊,就翻了翻技术博客,看了一下es,市场占比还是挺大的,于是就学习一下这个技术。当然,接触这项技术最早是在2019年4月的一个政务类的项目(上家公司)要求要做一个(业务)的搜索。于是当时是其他项目组的同事研究这个,搜索接口他们那边出,当时我也没太在意,也没深入看过这项技术,现在想想,后悔矣~

废话不多说,es就不说它应用场景了,简直太多太多了。比如 搜索,结合大数据进行数据分析

安装es

本篇是围绕elasticsearch7.3.x进行安装和使用的,如果版本不一致,出现安装问题,那就 呵呵了

˙我在这里贴一下es的官网地址,有兴趣的可以看看,es官网
ps:es官网下载资源太慢了,这里暂时省略。es是依赖java环境的,因此需要安装jdk环境,所以,在使用es之前要先装好jre环境

当你安装完之后window系统的执行bin目录下的elasticsearch.bat脚本,mac/linux 执行elasticsearch.sh命令
执行成功之后,然后等es起来在浏览器输入http://localhost:9200/
image.png

如果出现了上面的脚本,则es服务端安装成功

查看配置

es的配置完全是java风格的配置,是在conf目录下的 elasticsearch.yml文件,如果要修改jvm参数,则需要调整 jvm.options文件

#集群名,后面连接集群的时候需要
cluster.name: my-application
# 数据路径
path.data:  /xxxx/elasticsearch-7.3.0/data

#日志路径  查看日志的时候需要
path.logs: /xxxxx/elasticsearch-7.3.0/logs

# 主机 和端口
network.host: localhost
#
# Set a custom port for HTTP:
#
http.port: 9200
# 网关
#gateway.recover_after_nodes: 3

集成 springboot客户端

因为elasticsearch更新迭代特别快,对springboot各个版本的支持也都不太一样,这里我列一张表,是对springboot集成elasticsearch客户端和 elasticsearch服务端的版本,最新的版本我用md语法来进行标红
这里我从spring官网扒下来版本号对应的信息:

Spring-DataElasticsearchElasticsearchSpring-Boot
4.0.x7.6.22.3.x
3.2.x6.8.62.2.x
3.1.x6.2.22.1.x
2.1.x2.4.01.5.x

大致看一下,发现elasticsearch迭代是真的快,从6.2.x就可以支持springboot2.1.x+,而最新的springboot2.3.x则对应es服务端的7.6.2版本,本篇则是以7.3.0举例。
所以,在版本来讲还算比较新。当下用springboot2.2+的公司应该也不是很多吧?

这里需要强调一下,如果版本没有按照es规定的,则连接客户端会抛异常

NoNodeAvailableException[None of the configured nodes 
are available: [{#transport#-1}{NpJnCJjFR3KMqEGG4f0thA}

到这里开始真正集成springboot客户端了,本篇springboot版本2.1.6.RELEASE
spring-data-elasticsearch版本 3.1.9.RELEASE
elasticsearch服务端版本7.3.0
对应的pom文件如下:

 <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.1.6.RELEASE</version>
     <relativePath/>  
    </parent>
<!-- 这里用的是springboot依赖的data包,对应3.1.9版本 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

当然,如果集成springmvc项目需要加入spring-web-starter

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置es连接

在application.properties文件内加入如下配置

#集群名称,必须要和你上面配置的集群名一致
spring.data.elasticsearch.cluster-name=my-application
# 连接的属性 如果是多个,用逗号分隔
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.repositories.enabled=true

下篇写springboot实现es的(模糊)搜索,高亮

参考链接

springboot-data-elasticsearch
elastic中文网

# 教程   搜索  

评论

公众号:mumuser

企鹅群:932154986

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×