1. 準(zhǔn)備工作
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出城口免費(fèi)做網(wǎng)站回饋大家。
需要提前安裝好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文件
org.springframework.boot spring-boot-parent 2.1.6.RELEASE org.springframework.boot spring-boot-starter-data-elasticsearch
注意: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. 代碼
實(shí)體類。使用@Document注解,參數(shù)indexName是索引名稱,type是type名稱。
// 聲明索引名稱,type名稱@Document(indexName = "houseindex", type = "house") public class HouseIndexTemplate { @Id private Long id; private String name; ...... }
訪問接口。使用@Repository注解,并繼承ElasticsearchRepository接口,就可以直接訪問的。
有兩個(gè)參數(shù):1.返回的對(duì)象,2.ID參數(shù)數(shù)據(jù)類型
@Repository public interface HouseRepository extends ElasticsearchRepository{ }
測(cè)試用例
@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é)點(diǎn)不可用,原因答題有3種可能:(1)IP地址或端口填寫有誤;(2)cluster_name填寫有誤;(3)Elasticsearch服務(wù)已關(guān)閉
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。