一、检索
我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能支持;
Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也是采用了ElasticSearch作为其搜索服务,
二、概念
以 员工文档 的形式存储为例:一个文档代表一个员工数据。存储数据到 ElasticSearch 的行为叫做 索引 ,但在索引一个文档之前,需要确定将文档存储在哪里。
一个 ElasticSearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。
类似关系:
索引-数据库
类型-表
文档-表中的记录
属性-列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hxxIPQZx-1581770954353)(http://39.102.36.205:8090/upload/2020/2/image-df6aeba3e9d84e588e513fee1f7d2a22.png)]
三、整合ElasticSearch测试
- 引入spring-boot-starter-data-elasticsearch
<!--SpringBoot默认使用SpringData ElasticSearch模块进行操作-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
- 安装Spring Data 对应版本的ElasticSearch
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mqUyK6Au-1581770954354)(http://39.102.36.205:8090/upload/2020/2/image-a4e325f93ab04de19b7ad53c7e778c85.png)] - application.yml配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRRdxQXc-1581770954355)(http://39.102.36.205:8090/upload/2020/2/image-39719592641d4cd4b27112c3254bcab9.png)] - Spring Boot自动配置的
ElasticsearchRepository、ElasticsearchTemplate、Jest
测试ElasticSearch
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGJ3nlFx-1581770954356)(http://39.102.36.205:8090/upload/2020/2/image-b935cd440b064695b9d022577e8b191e.png)]
注意:
#启动elasticsearch的docker指令
#docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 5acf0e8da90b
elasticsearch需要提前声明号分配给他的内存大小,其默认的内存大小为2G
顺便说一下我的个人博客
天涯博客