最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

袁庭新老師ES系列15節(jié)|Elasticsearch客戶端基礎(chǔ)操作

2023-09-21 22:34 作者:袁庭新  | 我要投稿

前言

上一章節(jié)我們介紹了搭建Elasticsearch集群相關(guān)的知識。那么又該如何來操作Elasticsearch集群呢?在ES官網(wǎng)中提供了各種語言的客戶端,我們在項目開發(fā)過程中有多種Elasticsearch版本和連接客戶端可以選擇,那么他們有什么區(qū)別?這一章節(jié)袁老師帶領(lǐng)大家來學(xué)習(xí)Elasticsearch客戶端相關(guān)的內(nèi)容。

一. ES客戶端介紹

Elasticsearch客戶端詳解介紹可參考Elasticsearch官網(wǎng)介紹。

在Elasticsearch官網(wǎng)中提供了各種語言的客戶端:

注意點擊進(jìn)入后,選擇版本到6.2.4版本 ,因為我們之前按照的都是6.2.4版本講解的。進(jìn)入后可以通過官方文檔了解和學(xué)習(xí)Java客戶端相關(guān)的知識。

二. 搭建工程環(huán)境

1.創(chuàng)建一個Spring Initalizr類型的項目,項目名稱設(shè)置為【es-client】。

2.創(chuàng)建項目時,勾選Lombok、Spring Boot DevTools和Spring Web依賴。

注意:這里我們直接導(dǎo)入了SpringBoot的啟動器,方便后續(xù)講解。

3.將resource目錄下自動生成的application.properties文件修改成application.yml。

4.在項目的pom.xml文件中手動引入Elasticsearch的High-level-Rest-Client等相關(guān)的依賴。

三. 索引庫及映射

創(chuàng)建索引庫的同時,我們也會創(chuàng)建type及其映射關(guān)系,但是這些操作不建議使用Java客戶端完成,原因如下:

  • 索引庫和映射往往是初始化時完成,不需要頻繁操作,不如提前配置好。

  • 官方提供的創(chuàng)建索引庫及映射API非常繁瑣,需要通過字符串拼接JSON結(jié)構(gòu)。

因此,這些操作建議還是使用我們之前學(xué)習(xí)的Rest風(fēng)格API去實現(xiàn)。

在項目的com.yx.pojo包下創(chuàng)建Product商品類,以這樣一個商品數(shù)據(jù)為例來創(chuàng)建索引庫。

分析一下數(shù)據(jù)結(jié)構(gòu):

使用Kibana控制臺向集群中創(chuàng)建yx索引庫并編寫映射配置(如果之前創(chuàng)建過yx索引庫則先刪除)。

四. 索引數(shù)據(jù)操作

有了索引庫之后,我們接下來看看如何對索引庫中的數(shù)據(jù)進(jìn)行增刪改查操作。操作MySQL數(shù)據(jù)庫:

????1.獲取數(shù)據(jù)庫連接。

????2.完成數(shù)據(jù)的增刪改查操作。

????3.釋放資源。

1.初始化客戶端

對索引庫做任何操作,都需要通過RestHighLevelClient客戶端來完成。

1.在項目的test測試文件夾下創(chuàng)建com.yx.es包,并在該包下創(chuàng)建一個ElasticsearchTests測試類。

2.然后在ElasticsearchTests類中編寫RestHighLevelClient客戶端的初始化方法init()和關(guān)閉方法close()。

2.新增文檔

新增文檔的實現(xiàn)是,先將數(shù)據(jù)封裝到POJO對象中,然后通過restHighLevelClient對象來向索引庫中新增數(shù)據(jù)。

2.1.新增文檔實現(xiàn)

1.在ElasticsearchTests類中編寫新增文檔的insert()方法。

2.運行insert()方法,輸出結(jié)果見下:

3.運行insert()方法可能會報錯,具體解決方案見下。

2.2.新增文檔異常

1.如果導(dǎo)入Elasticsearch依賴時不指定其版本,可能導(dǎo)致找不到XContentType類。解決的方案就是在pom.xml文件中手動添加Elasticsearch對應(yīng)版本的依賴,比如手動指定Elasticsearch的版本為6.4.3。如果沒有這個問題,則忽略此步驟。

2.如果運行insert()方法提示java.lang.NullPointerException空指針異常,則可能的原因是@Test注解的包導(dǎo)入錯誤,注意導(dǎo)入的包是org.junit.Test而非org.junit.jupiter.api.Test。

3.查看文檔

根據(jù)Rest風(fēng)格,查看文檔是根據(jù)文檔id進(jìn)行GET查詢操作,難點是對結(jié)果的解析。

1.在ElasticsearchTests類中編寫查看文檔的select()方法。

2.運行select()方法,輸出結(jié)果見下:

4.修改文檔

新增文檔時,如果傳遞的id是已經(jīng)存在的,則會完成修改文檔操作,如果id不存在,則是新增文檔操作。

1.在ElasticsearchTests類中編寫修改文檔的update()方法。

2.運行update()方法,輸出結(jié)果見下:

5.刪除文檔

根據(jù)id刪除文檔。

1.在ElasticsearchTests類中編寫刪除文檔的delete()方法。

2.運行delete()方法,輸出結(jié)果見下:

五. 結(jié)語

Elasticsearch客戶端基礎(chǔ)部分的內(nèi)容袁老師就給大家介紹完了?;仡櫹逻@一章節(jié)我們學(xué)習(xí)的主要內(nèi)容,介紹了ES客戶端項目工程搭建、索引庫及映射、索引數(shù)據(jù)操作,主要重點介紹了索引數(shù)據(jù)的增刪改查操縱。關(guān)于ES客戶端基礎(chǔ)部分的內(nèi)容就介紹到這里,下一章節(jié)袁老師帶領(lǐng)大家學(xué)習(xí)Elasticsearch客戶端高級操作部分的內(nèi)容。


袁庭新老師ES系列15節(jié)|Elasticsearch客戶端基礎(chǔ)操作的評論 (共 條)

分享到微博請遵守國家法律
澄迈县| 靖州| 吴川市| 安阳县| 黔西县| 高雄县| 陆良县| 酉阳| 江山市| 新田县| 中江县| 留坝县| 十堰市| 蓬溪县| 华蓥市| 襄垣县| 城市| 观塘区| 丰原市| 马关县| 登封市| 南充市| 吴桥县| 彭山县| 达拉特旗| 绥棱县| 馆陶县| 荣昌县| 波密县| 靖边县| 福贡县| 咸丰县| 江西省| 钦州市| 广南县| 宁波市| 天台县| 宜川县| 彩票| 蒙城县| 墨脱县|