ElasticSearch學習筆記 --- 調研筆記知識點
筆記總結知識點:
1.安裝ElasticSearch。
2.ELasticSearch是使用Java開發並使用Lucene作為核心來實現所有索引和搜尋的功能
3.使用是通過簡單的restful API來使用。
4.安裝Marvel(ES的管理和監控)
5.特點:
分散式的實時檔案儲存,每個欄位都被索引並可被搜尋
分散式的實時分析搜引擎
可以擴充套件到上百臺伺服器,處理PB級機構化或非結構化資料
6.叢集是一組具有相同cluster.name,且網段相同的的結點集合
7.兩種client
{
節點客戶端(node client)
傳輸客戶端 (Transport client)
}
8.ElasticSearch是面向Document的,儲存整個物件或Document,不僅僅是儲存,還會index
9.索引(名詞):
一個索引就像是傳統關係資料庫中的資料庫,它是先關文件儲存的地方,index的複數是indices或indexes
10.索引(動詞):索引一個文件,表示把一個文件儲存到索引裡面,以便他可以被檢索或者查詢
11.利用倒排索引達到加速索引。
12.使用DSL(Domain Specific Language 領域特定語言)查詢
13.查詢結果可以使用highlight使結果高亮
14.ES還有聚合功能(aggregations)。
15.搜尋方式:
{
簡單搜尋
複雜搜尋
全文檢索
短語搜搜
}
16.一個節點node就是一個ElasticSearch例項,而一個叢集(Cluster)由一個或多個節點組成,他們具有相同的cluster.name, 他們協同工作,分享資料和負載。當有新的節點加入或者刪除結點,叢集會感知並平衡資料。
17.叢集中一個節點會被選舉為主節點(mater),任何結點都可以成為主節點。
18.任意節點知道文件儲存與哪個節點上。
19..檢測叢集健康狀態
20.Primary shard主要分片
Replicashad複製分片
21.索引是一個儲存關聯資料的地方,實際上索引只是一個用來指向一個或多個分片的邏輯名稱空間。
22.分片可以使主分片,或者複製分片,主分片的資料量決定你最多能儲存多少資料。
23.複製分片是主分片的副本,副分片隨時變化。
24.新加入節點時,系統利用廣播方式尋找cluster.name相同的node,並加入叢集。
25.雙節點叢集
26.單副本三節點叢集
27.雙副本三節點叢集
28.應對故障
殺掉第一個節點
殺掉主節點後,發生的第一件事就是各節點選舉出一個新的節點Node2.
29.Document這個術語指的是擁有唯一ID的最頂層或者根物件(root object)序列化成的json
30.Document通過_index, _type,_id唯一確定
31.索引文件可以利用自己的ID或者是自增的ID 利用put
32.檢索文件也是利用_index, _type, _id
33.檢測文件是否存在
34.pretty引數,美化輸出
35.更新文件 put
36.建立新文件post
37.刪除文件delete
38.併發時鎖的機制
39.外部版本控制,利用帶有版本控制的資料庫+ES,控制ES中的版本管理
40.區域性更新文件(利用指令碼程式碼)
41.更新可能不存在的文件,upsert,若沒有會被建立。
42.檢索多個文件multi-get或者mget API。
43.更省時的批量操作bulk。
44.路由文件到分片:
shard = hash(routing) %number_of_primary_shards
routing值是一個任意字串,它預設是_id但也可以自定義。這個routing字串通過雜湊函式生成一個數字,然後除以主切片的數量得到一個餘數。
45.主分片數量只有在建立索引的時候定義且不能被修改。
46.我們能夠傳送請求給叢集中任意一個節點,每個節點都有能力處理任意請求,每個節點都知道任意文件所在節點。
47.新建,索引,刪除都是寫操作,都必須在主分片上成功完成才能複製到相關的賦值分片上。
48.一致性,預設主分片在嘗試斜入式需要規定數量或過半的分片可用。
規定數量計算公式:
int( (primary + number_of_replicas) / 2) + 1
48.當分片副本不足時,ES會等待更多分片出現,預設一分鐘。可設定引數timeout.
49.檢索文件,文件能夠從主分片或任意一個複製分片被檢索。
50.搜尋工具:
對映(Mapping):資料在每個欄位中的解釋說明
分析(Analysis):全文是如何處理的可以被搜尋的
領域特定語言查詢(Query SQL): ElastocSearch使用的靈活,強大的查詢語言。
51:各種搜尋方式,空搜尋,多索引,多類別,分頁,簡易搜尋,
52.利用倒排索引的結構來做快速的全文搜尋。
53.master結點的數量是奇數,原因是 數值取值為 (有資格當選為Master的節點個數/2+1), 這樣做是為了防止腦裂現象, 防止某些主節點自成一個叢集.當有多個master的時候只有一
個leader。
54.ElasticSearch支援的欄位型別:
55.各種查詢,過濾(term, terms, range,exists, missing,bool,match_all. Match,
56.各種排序操作
56.索引管理(建立索引,刪除索引)。