一、檢索
我們的應(yīng)用經(jīng)常需要添加檢索功能,開源的 ElasticSearch 是目前全文搜索引擎的首選。他可以快速的存儲、搜索和分析海量數(shù)據(jù)。Spring Boot通過整合Spring Data ElasticSearch為我們提供了非常便捷的檢索功能支持;
Elasticsearch是一個(gè)分布式搜索服務(wù),提供Restful API,底層基于Lucene,采用多shard(分片)的方式保證數(shù)據(jù)安全,并且提供自動resharding的功能,github等大型的站點(diǎn)也是采用了ElasticSearch作為其搜索服務(wù),
二、概念
以 員工文檔 的形式存儲為例:一個(gè)文檔代表一個(gè)員工數(shù)據(jù)。存儲數(shù)據(jù)到 ElasticSearch 的行為叫做 索引 ,但在索引一個(gè)文檔之前,需要確定將文檔存儲在哪里。
一個(gè) ElasticSearch 集群可以 包含多個(gè) 索引 ,相應(yīng)的每個(gè)索引可以包含多個(gè) 類型 。 這些不同的類型存儲著多個(gè) 文檔 ,每個(gè)文檔又有 多個(gè) 屬性 。
類似關(guān)系:
索引-數(shù)據(jù)庫
類型-表
文檔-表中的記錄
屬性-列
image.png
三、整合ElasticSearch測試
- 引入spring-boot-starter-data-elasticsearch
<!--SpringBoot默認(rèn)使用SpringData ElasticSearch模塊進(jìn)行操作-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
-
安裝Spring Data 對應(yīng)版本的ElasticSearch
image.png -
application.yml配置
image.png - Spring Boot自動配置的
ElasticsearchRepository、ElasticsearchTemplate、Jest
測試ElasticSearch
image.png
注意:
#啟動elasticsearch的docker指令
#docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 5acf0e8da90b
elasticsearch需要提前聲明號分配給他的內(nèi)存大小,其默認(rèn)的內(nèi)存大小為2G
順便在這里說一下我的個(gè)人博客
天涯博客