認識ElasticSearch

elasticsearch:分佈式檢索引擎,擴展性好

使用Lucene作爲核心,通過restful api來請求使搜索變得簡單

特點:分佈式,多用戶,搜索引擎,restful web接口,支持實時get請求,適合作爲nosql數據存儲,但是缺少分佈式事務

 

ES解決了這些問題 

1、自動維護數據的分佈到多個節點的索引的建立,還有搜索請求分佈到多個節點的執行  即檢索數據

2、自動維護數據的冗餘副本,保證了一旦機器宕機,不會丟失數據 

3、速度快

原理:

當ElasticSearch的節點啓動後,它會利用多播(multicast)(或者單播,如果用戶更改了配置)尋找集羣中的其它節點,並與之建立連接。這個過程如下圖所示

 

概念:

1.索引:相當於表名

2.類型:相當於表結構

3.文檔: 表中數據

關係:一個 Elasticsearch 集羣可以包含多個索引(數據庫),也就是說其中包含了很多類型(表)。這些類型中包含了很多的文檔(行),然後每個文檔中又包含了很多的字段(列)

Cluster:集羣:可運行在多個服務器上

node:節點:形成集羣的每個服務器叫節點

 

shard:分片:文檔多時,由於內存限制,磁盤處理不足速度變慢時,一個節點不夠,數據可以分爲較小的分片,每個分片放到不同的服務器上。當查詢的索引分佈在多個分片上時,es會把查詢發送給每個相關的分片,並將結果組成一起返回

 

Replia:副本:爲提高查詢吞吐量或實現高可用性,可以使用分片副本。 

副本是一個分片的精確複製,每個分片可以有零個或多個副本。ES中可以有許多相同的分片,其中之一被選擇更改索引操作,這種特殊的分片稱爲主分片。 

當主分片丟失時,如:該分片所在的數據不可用時,集羣將副本提升爲新的主分片。

master-slave架構:建立索引回先發到master,master建立完索引後將集羣狀態同步到slave

只有建立索引和類型菜經過master,數據(文檔)的寫入有個簡單的routing規則,可以route到集羣任意節點,所以寫壓力是分散到整個集羣的

 

keyword有分詞

搜索引擎的原理:反向索引,倒排索引:通過對內容進行分詞建立倒排索引,指向title索引,內容->標題反向查詢

一個內容如果在多個標題的內容中存在則可指向多個標題;對關鍵字建立倒排索引

和百度,谷歌原理比較像,谷歌有停頓詞,無意義的詞或者符號

典型應用:ELK系統 ELK=elasticsearch+Logstash+kibana 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章