Elastic Search學習筆記

一、Elastic Search概述:

1.1 Elastic Search 簡介

Elastic Search(ES)是一個基于Lucene構建的開源、分布式、RESTFul接口全文搜索引擎。ES還是一個分布式文檔庫,其中每個字段均是被索引的 數據且可被搜索,它能夠擴展至數以百計的服務器存貯以及處理PB級的數據,它可以在短時間內存儲、搜索和分析大量的數據。
Elastic Search的主要特點
1.橫向可擴展性。增加一臺機器,只需要添加集群配置,啟動Elastic Search進行即可;
2.分片機制。一個索引可以分成多個Sharding,提高處理效率;
3.高可用性。每個分片可以設置多個備份,少量機器宕機不影響正常使用;

1.1 Lucene簡介

Lucene是Apache軟件基金會中的一個開源代碼的全文搜索引擎工具包,方便實現全文檢索的功能。 Lucene是倒敘排序索引,即由屬性的值來確定記錄的位置,而不是由記錄來確定屬性值。
舉例(轉自:《Elasticsearch技術解析與實戰》):



clipboard.png

字典樹采取trie樹和DAT樹,這部分待完善...

1.2 Lucene的核心結構:

Lucene將上面的三列分別作為詞典文件(Term Dictionary)、頻率文件(frequencies)、位置文件(positions)保存,其中詞典文件保存了指向頻率文件和文件位置的指針,通過指針可以找到該關鍵字的頻率信息和位置信息。


Elastic Search 5版本的_socre評分.jpg

總結socre評分有如下四個原則:

1.搜索詞出現次數越多,得分越高;
2.搜索詞在整個索引中出現次數越少,得分越高;
3.搜索字段中所有詞語數量越少,得分越高;
4.搜索詞和中的某一條數據匹配字段越多,得分越高。

1.3 ES的的術語說明:

Elastic Search和mysql的對應關系

MySql Elastic Search
database index
table type
row document
cloumn field
schema mapping
index Everything is indexed
SQL query DSL
slect * from... get http://...
update talbe set... put http://...

二.集群內部結構

ES是主從模式設計

2.1 主節點(Master node)

主節點負責集群的相關操作,管理集群變更,且全局唯一,一般采用主節點和數據節點分離的部署架構。為防止數據丟失,每個主節點要知道哪些從節點有資格成為主節點的數量。

2.2 數據節點(Data node)

負責保存數據,執行數據相關的操作,一般情況下(特殊除外),數據讀寫只和數據節點交互,不會和主節點打交道。
當增加和刪除節點時,即水平擴容,會觸發rebalance操作。

clipboard.png

數據的路由:

shard = hash(routing) % primary_shard_count
routing默認值是document_id的

2.3 預處理節點(ingest node,5.0版本引入)

在索引寫入數據之前,通過事先定義好的processors和pipeline,對數據進行轉換、富化。processors和pipeline攔截bulk和index請求,在應用相關操作后,將文檔傳回給index或bulk API。

2.4 協調節點(Coordinating node)

協調節點將請求轉發給Data node,每個Data node在本地執行請求,并返回給協調節點,協調節點將每個Data node的結果收集、合并甚至排序為單個全局結果,因此協調節點需要較多的CPU和內存資源。

數據寫入過程:

ES寫入操作.jpg

數據寫入的consistency參數:

quorum(默認):
要求大部分的shard是活躍的,那么寫入操作可執行。

quorum = int((primary_count+number_of_replica) /2 ) + 1

當quorum個數不夠時,默認等待一分鐘,如果一分鐘內quorum個數仍然不夠才不再執行。
one:
只要有一個primary shard是活躍的,那么寫入操作可執行。
all:
當所有shard是活躍的(primary shard + replica shard),那么寫入操作才可執行。

數據查詢的timeout參數:

timeout機制,指定每個shard只能在timeout時間內(默認無timeout限制),將檢索到的結果(可能只有一部分)返回給client,而不是等所有查詢結果全部搜索出來再返回,避免搜索時間過長,影響用戶體驗。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容