使用Spring Data Elasticsearch Starter
在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。該Starter提供了對(duì)Elasticsearch的高級(jí)集成,簡(jiǎn)化了配置和管理Elasticsearch客戶(hù)端。
下面是使用Spring Data Elasticsearch Starter的詳細(xì)介紹以及如何管理客戶(hù)端對(duì)象的初始化和關(guān)閉操作:
- 添加依賴(lài)坐標(biāo):
在項(xiàng)目的依賴(lài)管理文件(pom.xml或build.gradle)中添加Spring Data Elasticsearch Starter的依賴(lài)。以下是Maven的示例配置:
Maven:
<!-- Spring Data Elasticsearch Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
- 配置Elasticsearch連接參數(shù):
在application.properties或application.yml中配置Elasticsearch的連接參數(shù),例如:
application.properties:
spring.data.elasticsearch.cluster-nodes=localhost:9200
application.yml:
spring:
data:
elasticsearch:
cluster-nodes: localhost:9200
- 初始化和關(guān)閉客戶(hù)端對(duì)象:
Spring Boot會(huì)自動(dòng)根據(jù)配置文件中的參數(shù)來(lái)初始化Elasticsearch客戶(hù)端對(duì)象。您可以直接注入RestHighLevelClient
來(lái)使用它,Spring會(huì)負(fù)責(zé)管理客戶(hù)端的初始化和關(guān)閉。
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.stereotype.Service;
@Service
public class MyElasticsearchService {
private final RestHighLevelClient elasticsearchClient;
public MyElasticsearchService(RestHighLevelClient elasticsearchClient) {
this.elasticsearchClient = elasticsearchClient;
}
// 其他業(yè)務(wù)操作
// ...
}
在上述代碼中,我們?cè)?code>MyElasticsearchService中注入了RestHighLevelClient
。Spring Boot會(huì)自動(dòng)查找配置并創(chuàng)建Elasticsearch客戶(hù)端,然后將其注入到MyElasticsearchService
類(lèi)中。當(dāng)應(yīng)用程序關(guān)閉時(shí),Spring Boot會(huì)自動(dòng)關(guān)閉Elasticsearch客戶(hù)端。
確保Elasticsearch服務(wù)器在配置的節(jié)點(diǎn)上運(yùn)行,并且應(yīng)用程序能夠連接到Elasticsearch服務(wù)器。整合完成后,您可以在MyElasticsearchService
中使用elasticsearchClient
來(lái)執(zhí)行各種Elasticsearch操作。
通過(guò)使用Spring Data Elasticsearch Starter,您可以避免直接使用低級(jí)別的Elasticsearch客戶(hù)端,而是利用Spring Boot的自動(dòng)配置來(lái)簡(jiǎn)化初始化和關(guān)閉操作。這使得整合Elasticsearch變得更加容易和高效。
使用elasticsearch-rest-high-level-client
在Spring Boot中整合Elasticsearch的High Level Client,您首先需要添加相應(yīng)的依賴(lài)坐標(biāo),然后可以使用Spring的管理機(jī)制來(lái)初始化和關(guān)閉客戶(hù)端對(duì)象。
- 添加依賴(lài)坐標(biāo):
在項(xiàng)目的依賴(lài)管理文件(pom.xml或build.gradle)中添加elasticsearch-rest-high-level-client的依賴(lài),以及其他必要的Elasticsearch依賴(lài)。以下是Maven的示例配置:
Maven:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.15.0</version>
</dependency>
- 初始化和關(guān)閉客戶(hù)端對(duì)象:
Spring Boot提供了@Bean注解,可以將客戶(hù)端對(duì)象注入到Spring容器中,并在需要時(shí)進(jìn)行初始化和關(guān)閉。您可以創(chuàng)建一個(gè)配置類(lèi),用于配置Elasticsearch客戶(hù)端。
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ElasticsearchConfig {
@Value("${elasticsearch.host}")
private String host;
@Value("${elasticsearch.port}")
private int port;
@Bean(destroyMethod = "close")
public RestHighLevelClient elasticsearchClient() {
RestClientBuilder builder = RestClient.builder(new HttpHost(host, port));
return new RestHighLevelClient(builder);
}
}
在上述配置類(lèi)中,@Configuration注解表示這是一個(gè)配置類(lèi),@Bean注解用于聲明一個(gè)Bean,其中destroyMethod屬性指定了在Spring容器關(guān)閉時(shí)調(diào)用的方法,用于關(guān)閉客戶(hù)端。
- 在application.properties或application.yml中配置連接參數(shù):
在配置文件中添加Elasticsearch的連接參數(shù),例如:
application.properties:
elasticsearch.host=localhost
elasticsearch.port=9200
application.yml:
elasticsearch:
host: localhost
port: 9200
這樣,當(dāng)Spring Boot應(yīng)用程序啟動(dòng)時(shí),Elasticsearch客戶(hù)端將被自動(dòng)初始化,并且可以在其他地方通過(guò)@Autowired或@Resource注解將其注入到需要使用的類(lèi)中。在應(yīng)用程序關(guān)閉時(shí),Spring Boot會(huì)自動(dòng)調(diào)用客戶(hù)端的close()方法來(lái)關(guān)閉連接。
注意:確保Elasticsearch服務(wù)器在指定的主機(jī)和端口上運(yùn)行,并且可以從應(yīng)用程序訪問(wèn)。
總結(jié)概括
整合Elasticsearch是Spring Boot的一項(xiàng)常見(jiàn)任務(wù),用于在應(yīng)用程序中使用Elasticsearch搜索和分析功能。ES搜索引擎著實(shí)強(qiáng)大!通過(guò)以上兩種方式,大家可以很好的了解一下:
在Spring Boot中整合Elasticsearch,可以采用兩種主要方式:
-
使用elasticsearch-rest-high-level-client依賴(lài):這種方式是直接使用Elasticsearch官方提供的Java客戶(hù)端,通過(guò)HTTP與Elasticsearch集群通信。需要在代碼中手動(dòng)配置連接參數(shù),并管理客戶(hù)端對(duì)象的初始化和關(guān)閉。
-
使用Spring Data Elasticsearch Starter:這種方式使用Spring Data Elasticsearch Starter依賴(lài)來(lái)簡(jiǎn)化整合過(guò)程。Starter自動(dòng)配置了Elasticsearch客戶(hù)端,您只需在配置文件中指定連接參數(shù),Spring Boot會(huì)自動(dòng)初始化和管理客戶(hù)端對(duì)象。
管理客戶(hù)端對(duì)象的初始化和關(guān)閉操作:
-
對(duì)于elasticsearch-rest-high-level-client:您可以使用Java配置類(lèi),在其中通過(guò)@Bean注解創(chuàng)建RestHighLevelClient Bean,并使用@Value注解來(lái)讀取連接參數(shù)。然后使用@Bean的destroyMethod屬性指定客戶(hù)端的關(guān)閉方法,在應(yīng)用程序關(guān)閉時(shí)關(guān)閉客戶(hù)端。
-
對(duì)于Spring Data Elasticsearch Starter:只需在代碼中直接注入RestHighLevelClient Bean,并在需要時(shí)使用它來(lái)執(zhí)行Elasticsearch操作。Spring Boot會(huì)自動(dòng)管理客戶(hù)端對(duì)象的初始化和關(guān)閉。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-635264.html
無(wú)論您選擇哪種方式整合Elasticsearch,都需要確保Elasticsearch服務(wù)器在配置的節(jié)點(diǎn)上運(yùn)行,并且應(yīng)用程序能夠連接到Elasticsearch服務(wù)器。利用ES提供的強(qiáng)大的搜索和分析功能,實(shí)現(xiàn)業(yè)務(wù)需求,應(yīng)用實(shí)際場(chǎng)景,使我們最終的目標(biāo)?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-635264.html
到了這里,關(guān)于Spring Boot整合ES的兩種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!