當(dāng)前速讀:SpringBoot整合ElasticSearch
ElasticSearch是個(gè)開源分布式搜索引擎,提供搜集、分析、存儲(chǔ)數(shù)據(jù)三大功能。它的特點(diǎn)有:分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。主要負(fù)責(zé)將日志索引并存儲(chǔ)起來,方便業(yè)務(wù)方檢索查詢。
1 安裝ES
下載地址:https://www.elastic.co/cn/downloads/elasticsearch
【資料圖】
選擇Windows版本,我下載的是7.17.0。解壓后即可完成安裝。
進(jìn)入bin文件, 雙擊執(zhí)行 elasticsearch.bat,然后打開瀏覽器,進(jìn)入頁面: http://localhost:9200,看到以下輸出,表示啟動(dòng)成功。
2 Spring項(xiàng)目
項(xiàng)目GitHub地址:https://github.com/Snowstorm0/learn-es
項(xiàng)目Gitee地址:https://gitee.com/Snowstorm0/learn-es
2.1 配置ES客戶端
public class RestClientConfig extends AbstractElasticsearchConfiguration { @Override @Bean public RestHighLevelClient elasticsearchClient() { final ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo("localhost:9200") .build(); return RestClients.create(clientConfiguration).rest(); }}
2.2 創(chuàng)建User類
public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; private String job; private Double deposit; private Date processTime = new Date();}
配置完成后,ElasticSearch即可像常規(guī)的數(shù)據(jù)庫那樣進(jìn)行增刪改查的操作。
2.3 配置數(shù)據(jù)庫
spring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://localhost:3306/sys?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
3 運(yùn)行項(xiàng)目
3.1 添加
調(diào)用添加接口:http://localhost:8080/user/add
添加User類的請(qǐng)求體:
{ "id":"1", "name":"代碼的路", "job":"碼農(nóng)", "deposit":100.0}
可以看到添加成功:
3.2 讀取
運(yùn)行讀取接口:http://localhost:8080/user/search/whole?key=碼農(nóng)
可以獲得剛寫入的User類,是完整結(jié)構(gòu):
運(yùn)行讀取接口:http://localhost:8080/user/search/es?key=碼農(nóng)
可以獲得剛寫入的User類,只有User結(jié)構(gòu):
打開數(shù)據(jù)庫,無需手動(dòng)創(chuàng)建表結(jié)構(gòu),即可看到User類也已經(jīng)寫入到數(shù)據(jù)庫中:
因此可以刻直接從數(shù)據(jù)庫讀取。
關(guān)鍵詞: