SpringBoot集成Elasticsearch過程實例
1. 準(zhǔn)備工作
需要提前安裝好Elasticsearch,訪問地址:http://127.0.0.1:9200/ 得到以下結(jié)果,得到cluster_name,下面配置使用。
{
"name" : "O8GslS3",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "pviTqfXtR3GtnxF-Po-_aA",
"version" : {
"number" : "6.5.0",
......
},
"tagline" : "You Know, for Search"
}
2. 使用Maven創(chuàng)建SpringBoot工程
配置Maven的pom.xml文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
</dependencies>
注意:spring-boot-starter-data-elasticsearch包,引用的是spring-data-elasticsearch包,而spring-data-elasticsearch包的版本與elasticsearch服務(wù)版本是有兼容性問題的。
目前并不支持elasticsearch7.x,參考:https://github.com/spring-projects/spring-data-elasticsearch

配置application.yml文件
spring:
data:
elasticsearch:
cluster-name: docker-cluster
cluster-nodes: 127.0.0.1:9300
repositories:
enabled: true
3. 代碼
實體類。使用@Document注解,參數(shù)indexName是索引名稱,type是type名稱。
// 聲明索引名稱,type名稱@Document(indexName = "houseindex", type = "house")
public class HouseIndexTemplate {
@Id
private Long id;
private String name; ......
}
訪問接口。使用@Repository注解,并繼承ElasticsearchRepository接口,就可以直接訪問的。
有兩個參數(shù):1.返回的對象,2.ID參數(shù)數(shù)據(jù)類型
@Repository
public interface HouseRepository extends ElasticsearchRepository<HouseIndexTemplate, Long> {
}
測試用例
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class UserServiceTest {
@Autowired
private HouseRepository houseRepository;
@Test
public void selectUser(){ HouseIndexTemplate template = new HouseIndexTemplate(); template.setId(1); template.setName("Tom");
houseRepository.save(template);
}
}
4. 異常解釋
問題1: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{IVH9QII0QrOU9GkXdsJPiA}{127.0.0.1}{127.0.0.1:9300}]]
原因:這是說配置的節(jié)點不可用,原因答題有3種可能:(1)IP地址或端口填寫有誤;(2)cluster_name填寫有誤;(3)Elasticsearch服務(wù)已關(guān)閉
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot集成ElasticSearch實現(xiàn)搜索功能
- SpringBoot3集成ElasticSearch的方法詳解
- SpringBoot集成elasticsearch使用圖文詳解
- SpringBoot集成ElasticSearch的示例代碼
- Springboot集成Elasticsearch的步驟與相關(guān)功能
- SpringBoot框架集成ElasticSearch實現(xiàn)過程示例詳解
- springboot集成elasticsearch7的圖文方法
- Springboot集成spring data elasticsearch過程詳解
- SpringBoot與Elasticsearch8.0集成
相關(guān)文章
Java spring事務(wù)及事務(wù)不生效的原因詳解
在日常編碼過程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因2021-09-09
Java使用MapStruct進(jìn)行對象映射的流程步驟
MapStruct 是一款基于注解的、用于 Java 對象映射的代碼生成器,本文即以常見的基于 Maven 管理的 Java 項目為基礎(chǔ),以實際項目中的 VO(值對象)到 DTO(數(shù)據(jù)傳輸對象)的轉(zhuǎn)換為例來演示 MapStruct 的常用功能和使用方式,需要的朋友可以參考下2025-08-08
Spring Boot 自動裝配的幾種用法示例小結(jié)
文章介紹了SpringBoot自動裝配的多種用法,包括基礎(chǔ)的@Bean注冊、策略模式通過applicationContext獲取指定Service實現(xiàn)類,以及高級的獲取接口所有實現(xiàn)類集合和Map映射,感興趣的朋友跟隨小編一起看看吧2025-07-07
vscode開發(fā)maven的javaweb項目并部署到tomcat及配置指南
這篇文章主要給大家介紹了關(guān)于vscode開發(fā)maven的javaweb項目并部署到tomcat及配置的相關(guān)資料,在vscode中創(chuàng)建maven項目,需要逐一操作下面的環(huán)節(jié),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

