面試官:ElasticSearch是什麼,它有什麼特性與使用場景?

曠世奇才927 發表於 2022-05-11
面試 ElasticSearch

哈嘍!大家好,我是小奇,一位熱愛分享的程式設計師
小奇打算以輕鬆幽默的對話方式來分享一些技術,如果你覺得通過小奇的文章學到了東西,那就給小奇一個贊吧
文章持續更新

一、前言

書接上回,我本以為我跟面試我的小姐姐情投意合,這次工作肯定是十拿九穩了。

殊不知最後卡在了hr大姐那裡了,說我體格太小不合適,我是來面試開發來了,不是面試驢拉磨來了, 我懷疑hr跟劉嬸是親戚吧,以貌取人、以體格取人。。。

由於以為昨天十拿九穩,今天也沒有約面試,閒著也是閒著,我準備找我在北京當工程師的發小去玩一天,他跟我說他是什麼長方體固體定向移動工程師,我也不懂這是個什麼,感覺比Java工程師要厲害,決定今天去拜訪他一下。

換乘了四趟地鐵,又坐了十幾站公交車,終於來到了我發小猴哥這裡來了,他之前在電話裡跟我說他現在混得特別好,從之前的一無所有,混到現在的。。。,由於地鐵上訊號不太好後面混成啥樣沒聽清就結束通話了,我覺得怎麼也混到了呼風喚雨的地步了吧。

到了目的地跟他打電話,他跟我說他在幸福小區頂樓,直接上來吧沒有門,我尋思什麼房子這麼高階沒有門呢,結果上來了遠遠的就看見他的背影了,我終於知道後面說的現在混成什麼樣了,原來是從之前的一無所有,混成現在的身無分文了啊。。。

在這裡插入圖片描述

我:“猴哥,你不是說你在頂樓沒有門嗎?”

猴哥:“對啊,你看我現在不就在頂樓正幹活呢嘛,這頂樓還沒有蓋好,所以當然沒有門了嘛”。

我:“行吧,說不過你,那你不是工程師嗎,什麼長方體固體定向移動工程師”。

猴哥:“對啊,你看我手裡的磚是長方體吧,我從這邊給他移動到這邊,我這一套下來不就是長方體固體定向移動工程師嘛”。

我:“得,你來了大城市了以後套路也變深了啊”。

猴哥:“那必須的,對了小奇你來北京不是來面試Java了嗎,面試的怎麼樣了?”

我:“別提了,人家嫌我體格不好,我要是有你這體格那我就槓槓的上班了”。

猴哥:“那你正好也別找開發工作了,你直接跟我幹好了,幹一個月你體格也就好了”。

我:“那你們這裡加班嗎?壓力大不大?”

猴哥:“一點都不大,你可以看看我們大門口的崗位要求,我感覺簡簡單單啦,跟你們程式設計師還是沒法比的哦”。

我:“在哪呢?我去看看”。

在這裡插入圖片描述

我:“你們這特麼都是跟誰學的,現在工地也這麼卷的嗎?“

猴哥:“沒辦法,我們前一段時間空降了一個工頭,之前是某大廠程式設計師,給我們定了規矩,現在我們每天回去還得寫ppt呢”。

我:“這特麼都是大廠給社會輸送的人才,你得好好跟著你們工頭幹啊”。

猴哥:“必須的,等我我收拾一下,我們出去玩”。

在這裡插入圖片描述

我:“你這就收拾好了啊,不換身衣服啊”。

猴哥:“不用換,一會領導打電話還得趕回來幹活呢,你們不是也隨時待命,陪女朋友逛商場也得揹著電腦嘛”。

我:“以後學我點好的,別學我壞的”。

猴哥:“不是你也沒有好的啊”。

我:“我。。。”。

二、面試

從發小那裡玩完下午回來的路上突然接到了一個電話,電話那頭的小姐姐聲音甜美,說是在簡歷庫中看到了我的簡歷,問我有沒有時間去現場面試,我想著反正現在也沒有事情,不如就去面試,小姐姐說加我微信,一會發我公司地址。

加了小姐姐微信後,上來肯定是先看一波朋友圈啊,小司機可能不太懂,但是老司機已經開始分析了,該說不說這個小姐姐確實正品啊,比劉嬸強多了,為了彌補被我劉嬸視覺衝擊到的讀者,我就把小姐姐的照片分享給大家。

在這裡插入圖片描述

到了地方後小姐姐把我帶進一個小黑屋,正在我竊喜可能會發生點什麼的時候之間她拿了面試題過來了,說外面沒有地方了,就在這個小屋子裡做題吧,唉,白期待了。

做完題來了一位面試官,我一看是男的就瞬間沒了興趣,但是來都來了,怎麼也得面試完啊。

面試官:“小奇是吧”。

我:“是我”。

面試官:“我看你簡歷上寫的精通ElasticSearch?是真的還是寫錯了”。

我:“我時而精通時而模糊,你就問吧”。

面試官:“行,那你就先簡單的說一下ElasticSearch是什麼吧”。

三、ElasticSearch是什麼

我:“ElasticSearch是用Java開發的,並且是當前最流行的開源的企業級搜尋引擎,它提供了一個分散式多使用者能力的全文搜尋引擎,它能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便”。

四、ElasticSearch索引原理

面試官:“嗯,你能說一下ElasticSearch使用的什麼索引嗎,有什麼原理嗎”。

我:ElasticSearch中分詞使用的是倒排索引。

在這裡插入圖片描述

我:ElasticSearch先將文章的內容進行分詞,將詞和行數關聯起來,然後將重複的詞去重,將行數記錄下來,這樣我們上面如果搜尋hello這個詞的話就會給他展示第1和2行的資料,因為hello就在這兩行裡面,而不用再全文章掃描了。

面試官:“嗯,為什麼有些資料庫在資料量變大的時候效能下降的非常厲害,而ElasticSearch資料量越來越大的時候反而效能下降的不明顯呢”。

我:因為我們可以看到,無論文章有多少的內容,我們最後都會去重,也就是說最後的索引表中的條數不會超過所有的單詞。

也就是說假如世界上只有100個單詞,那麼最後索引表中只有100條資料,因為文章是由單片語成的,文章內容再多最後去重後也只有100條資料,只不過資料的所在行有所變化而已。

這樣我們就看出來了,文章內容越多,他的單詞重複率越高,查詢效能降低的也越來越慢。

五、ElasticSearch分詞器

面試官:“嗯,那我們怎麼知道一句話中哪些是詞語呢,怎麼來分詞呢”。

我:如果文章是英文的,那麼非常好分詞,因為英文單詞中間有空格,我們根據空格就可以分詞,這樣直接使用ElasticSearch自帶的分詞器就好。

如果文章是中文的,那麼使用ElasticSearch自帶的分詞器就不是很好了,因為它會將中文的每一字都給分開,顯然是不合理的,總不能把奇哥很帥分開吧。

所以我們可以使用IK中文分詞器,我們使用這個外掛就可以實現中文內容的分詞了。

六、ElasticSearch有哪些使用場景呢

面試官:“嗯,那你說一下ElasticSearch有哪些使用場景呢”。

我:一般的話像百度這種的專門做搜尋的,你搜尋關鍵詞,他會幫你找到對應的內容,並且給他標紅。

在這裡插入圖片描述

我:還有像淘寶、京東這種購物網站,搜尋關鍵詞也會展示內容,並且關鍵詞高亮處理。

在這裡插入圖片描述

面試官:“小夥子不錯呀,什麼時候能入職呢”

我:“額。。。我後面還約了面試呢,怎麼也得一週左右了吧”

面試官:“別面別家的了,就來我這吧,條件隨便開”

我:“不不不,容我考慮考慮”。

面試官:“行,那等你考慮好了告訴我,今天就先這樣,你還有什麼問題要問我的嗎”

我:“我有問題要問”。

面試官:“什麼問題”

我:“就是帶我的那個hr球姐有物件嗎。。。”

七、總結

這裡關於ElasticSearch還沒有整理完畢,文章後面持續更新,建議收藏。

文章中涉及到的命令大家一定要像我一樣每個都敲幾遍,只有在敲的過程中才能發現自己對命令是否真正的掌握了。

如果覺得我的文章還不錯的話就點個贊吧