spring boot 進(jìn)階(二)springBoot整合ES

這里關(guān)于es的下載和啟動(dòng)就不多說(shuō)了,不會(huì)的可以去看我一篇專門講下載啟動(dòng)的文章:
http://www.reibang.com/p/a5bf043eec62
然后這里有個(gè)注意點(diǎn):es啟動(dòng)會(huì)默認(rèn)占用2G的內(nèi)存挎峦。如果沒(méi)這么多空間可以在啟動(dòng)的時(shí)候指定大小蕾羊。
es有兩個(gè)默認(rèn)端口9200就缆,9300

  • 9200用于外部通訊制跟,基于http協(xié)議竭贩,程序與es的通信使用9200端口旧困。
  • 9300jar之間就是通過(guò)tcp協(xié)議通信印屁,遵循tcp協(xié)議循捺,es集群中的節(jié)點(diǎn)之間也通過(guò)9300端口進(jìn)行通信。

然后es的官方文檔的話我不知道為啥es官網(wǎng)總是轉(zhuǎn)啊轉(zhuǎn)啊的打不開(kāi)雄人,所以這里依然是群文件中下載的中文版權(quán)威指南从橘,感興趣的私我我發(fā)你:



這里簡(jiǎn)單的介紹下es中的概念類比mysql:


我這個(gè)色彩斑斕的圖

然后我們參考es手冊(cè)來(lái)簡(jiǎn)單的測(cè)試下es的添加操作。因?yàn)檫@個(gè)傳參是json串础钠,所以這里用postman來(lái)測(cè)試恰力。如下:

ES中添加操作:

官方文檔上的介紹

下面我們按照這個(gè)要求自己來(lái)在postman操作:


postman中請(qǐng)求響應(yīng)

最后的返回說(shuō)了已經(jīng)created了,就是說(shuō)明創(chuàng)建成功了的旗吁。同樣我們可以多插入幾個(gè)好執(zhí)行別的操作踩萎。至于json串我們?nèi)ナ謨?cè)上找就行了。

ES中查詢操作:

剛剛我又手動(dòng)添加了幾條文檔很钓,然后接下來(lái)我們查詢:
es支持restful接口香府,所以我們換成get方式請(qǐng)求:


es中查詢操作

這里id是文檔id,found:true說(shuō)明查詢到了码倦。source中的查詢到的內(nèi)容企孩。

ES刪除操作:

注意,只要把請(qǐng)求方式換成del就會(huì)刪除:


es刪除操作

再次整理下這個(gè)接口:

  • put是添加和修改(傳的id存在的情況下是修改)叹洲。
  • del是刪除柠硕。
  • get是查詢工禾。

需要注意的是一個(gè)文檔修改以后运提,version會(huì)增加蝗柔。
然后es中g(shù)et xx/xx/_search是查詢?cè)擃愋偷乃形臋n。

_search搜索某類型的所有文檔

ES檢索

上面簡(jiǎn)單的查詢指定id的民泵,還有全查詢不說(shuō)癣丧,es中一些檢索功能是很強(qiáng)大的,畢竟一般提起es第一反應(yīng)就是搜索引擎栈妆。
話不說(shuō)多胁编,es中允許篩選條件是json字符串。
這個(gè)其實(shí)手冊(cè)上說(shuō)的挺全的鳞尔,我就不一一搬運(yùn)了嬉橙,簡(jiǎn)單來(lái)說(shuō)我個(gè)人總結(jié)就是有兩個(gè)強(qiáng)大的功能:分詞,權(quán)重寥假。
我們可以在全文檢索的時(shí)候指定一些關(guān)鍵字:比如A,B,C,D
四個(gè)關(guān)鍵字都包含的權(quán)重最高市框,排在結(jié)果集的上面。只有三個(gè)的次之糕韧,排在四個(gè)都有的下面枫振。只有兩個(gè)的更低,只有一個(gè)的排在最后萤彩。這個(gè)權(quán)重是es實(shí)現(xiàn)的粪滤。
其實(shí)上面說(shuō)的挺少的,還有很多東西雀扶,比如高亮檢索杖小,短語(yǔ)檢索等。我這里簡(jiǎn)單說(shuō)一下高亮愚墓,畢竟是挺神奇的東西:

百度搜索

雖然說(shuō)百度不是用es實(shí)現(xiàn)的窍侧,但是這個(gè)高亮效果就是這樣,看到?jīng)]转绷?搜索的關(guān)鍵字就紅了伟件!這個(gè)我反正是覺(jué)得挺神奇的。

SpringBoot整合ES

上面說(shuō)了很多都是es本身的東西议经,但是作為一個(gè)java程序員斧账,最終還是要實(shí)現(xiàn)springBoot整合es的。SpringBoot支持兩種技術(shù)和es交互煞肾。一種的jest咧织,還有一種就是SpringData-ElasticSearch。
其根據(jù)引入的依賴不同而選擇不同的技術(shù)籍救。反正作為spring全家桶目前是以springdata為主流使用技術(shù)习绢。直接說(shuō)data-elasticsearch了

  1. 導(dǎo)包
    第一步引入依賴沒(méi)啥好說(shuō)的。老規(guī)矩,去maven倉(cāng)庫(kù)里找:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-elasticsearch -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <version>2.3.7.RELEASE</version>
</dependency>

注意這里要引入springBoot整合es的場(chǎng)景啟動(dòng)器闪萄∥嗳矗可以簡(jiǎn)單看下這個(gè)場(chǎng)景啟動(dòng)器里面都有啥依賴:


  1. 分析自動(dòng)配置了什么
    這里又到了源碼時(shí)間啦,依然是老規(guī)矩败去,去配置文件中找(既然使用的是data-elasticsearch放航,肯定要去data包下找,注意源碼位置):


    es可配置參數(shù)

    我們呀
    其實(shí)es中需要配置的參數(shù)還挺少的圆裕。广鳍。除了endpoints剩下就用戶名密碼了。這里簡(jiǎn)單的看一下吓妆,前綴是spring.elasticsearch.rest.XXX赊时。

  2. repository層
    這個(gè)類似于jpa的用法,也是需要自己寫對(duì)應(yīng)的dao層的行拢。type類型在java中就是一個(gè)類蛋叼。而一個(gè)java實(shí)體對(duì)象是es中的一個(gè)文檔,對(duì)象的屬性對(duì)應(yīng)es中的屬性剂陡。對(duì)應(yīng)關(guān)系是這樣的狈涮。
    現(xiàn)在我們要自己寫respository來(lái)操作某個(gè)類型。同樣這個(gè)類型在java中要有對(duì)應(yīng)的實(shí)體鸭栖。如下代碼:


    實(shí)體和dao層寫法

    幾乎和jpa大同小異歌馍,重點(diǎn)是實(shí)體上這個(gè)注解藥指定索引和類型。
    下面簡(jiǎn)單的做一些es的crud操作

  3. es的curd操作
    其實(shí)這個(gè)真的真的真的和jpa好像晕鹊,也自帶了crud方法松却,我直接使用測(cè)試:
    添加操作

    添加成功

    事實(shí)證明一個(gè)簡(jiǎn)單的插入操作就完成了。然后我們?cè)倏匆幌聞e的操作:
    加了一個(gè)刪除一個(gè)查詢

    這里因?yàn)椴樵兪莻€(gè)查詢語(yǔ)句溅话,所以我只判斷這個(gè)id存不存在晓锻。
    下面的接口測(cè)試:剛剛我們插入了id是8023的,所以查詢?cè)诓辉谡?lái)講應(yīng)該是在的飞几。然后調(diào)用刪除接口砚哆,再查尋在不在。如果是不在說(shuō)明這兩個(gè)接口都是正常工作的:
    查詢刪除查詢

    結(jié)果和我們預(yù)想的一樣一樣的屑墨,說(shuō)明這兩個(gè)接口都正常使用了躁锁。
    到這,es的簡(jiǎn)單curd功能就這樣了卵史。
    其實(shí)es可以講的東西有好多战转,但是因?yàn)槲覀冞@里只是簡(jiǎn)單的說(shuō)一下整合,僅僅作用于入門以躯,所以這里就不多說(shuō)了槐秧,畢竟想要吃透es我覺(jué)得是個(gè)很難的事。小小的吐槽一下之前我一直宛若神人的講師雷神,感覺(jué)講進(jìn)階課程以來(lái)也終于不像是框架是他寫的那么熟悉了刁标。當(dāng)然了我沒(méi)別的意思颠通,依然覺(jué)得雷神相當(dāng)厲害,但是術(shù)業(yè)有專攻命雀。有可能真的是接觸的少呢。比如我工作了三年多了斩箫,也就是在demo 中 自己琢磨過(guò)es玩吏砂,一點(diǎn)實(shí)踐經(jīng)驗(yàn)都莫得,賊可惜乘客。
    本篇筆記也就記到這里了狐血,越來(lái)越覺(jué)得這個(gè)進(jìn)階課程不是教各種技術(shù)的用法,而是如何整合別的技術(shù)易核,其核心就是自動(dòng)配置匈织。第一看配置屬性類對(duì)應(yīng)配置屬性。第二看自動(dòng)配置類看都配置了什么怎么用牡直。有點(diǎn)失望與真正三方技術(shù)整合的過(guò)于淺顯缀匕。但是其實(shí)按照這個(gè)教學(xué)時(shí)長(zhǎng)也是能理解的事,畢竟這個(gè)課程主要說(shuō)的還是springBoot碰逸。反正就這樣吧乡小,本篇筆記如果幫到你了記得點(diǎn)個(gè)喜歡點(diǎn)個(gè)關(guān)注。另外spring Boot 1.x和2.x大不相同饵史,如果遇到問(wèn)題了歡迎留言或者私信我大家一起討論解決满钟!祝大家工作順順利利!平安夜快樂(lè)!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胳喷,隨后出現(xiàn)的幾起案子湃番,更是在濱河造成了極大的恐慌,老刑警劉巖吭露,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吠撮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡讲竿,警方通過(guò)查閱死者的電腦和手機(jī)纬向,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)戴卜,“玉大人逾条,你說(shuō)我怎么就攤上這事⊥栋” “怎么了师脂?”我有些...
    開(kāi)封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吃警,道長(zhǎng)糕篇,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任酌心,我火速辦了婚禮拌消,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘安券。我一直安慰自己墩崩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布侯勉。 她就那樣靜靜地躺著鹦筹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪址貌。 梳的紋絲不亂的頭發(fā)上铐拐,一...
    開(kāi)封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音练对,去河邊找鬼遍蟋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛螟凭,可吹牛的內(nèi)容都是我干的匿值。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼赂摆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挟憔!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起烟号,我...
    開(kāi)封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绊谭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后汪拥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體达传,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年迫筑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宪赶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脯燃,死狀恐怖搂妻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辕棚,我是刑警寧澤欲主,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布邓厕,位于F島的核電站,受9級(jí)特大地震影響扁瓢,放射性物質(zhì)發(fā)生泄漏详恼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一引几、第九天 我趴在偏房一處隱蔽的房頂上張望昧互。 院中可真熱鬧,春花似錦伟桅、人聲如沸敞掘。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)渐逃。三九已至够掠,卻和暖如春民褂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疯潭。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工赊堪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竖哩。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓哭廉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親相叁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子遵绰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容