共計 1433 個字符,預計需要花費 4 分鐘才能閱讀完成。
這期內容當中丸趣 TV 小編將會給大家帶來有關 Elasticsearch 的基本概念是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
ES 是一個高擴展的、開源的、全文檢索的搜索引擎,它提供了近實時的索引、搜索、分析功能。Shay Banon 是 ES 奠基者,系統是在 Apache Lucene 的基礎上采用 Java 實現的。Lucene 非常復雜,而 ES 通過 RESTful API 屏蔽 Lucene 的復雜性,提供了方便的應用接口。
應用場景
它提供了強大的搜索功能,可以實現類似百度、谷歌等搜索。
可以搜索日志或者交易數據,用來分析商業趨勢、搜集日志、分析系統瓶頸或者運行發展等等
可以提供預警功能(持續的查詢分析某個數據,如果超過一定的值,就進行警告)
分析商業信息,在百萬級的大數據中輕松的定位關鍵信息
ES 典型應用
Wikipedia
Stack Overflow
GitHub
Docker
基本概念
Cluster/ 集群:Cluster 是一組服務器構成的集成,用于協同存儲數據、索引數據、檢索數據和解析數據。Cluster 具有唯一標識名,你只需要指定集群標識名(默認是 elasticsearch),啟動的時候,凡是集群是這個名字的,都會默認加入到一個集群中,選舉 master 節點和節點管理都是自動完成的 (集群部署參考文章《ElasticSearch 部署》)。
Node/ 節點:Node 是參與到 Cluster 的單個服務器節點,具有唯一標識名,可加入到指定的 Cluster 中。
Index/ 索引:Index 是一類文檔的集合,是具有相同業務特征的數據文檔集合 (不是相同數據結構),相當于傳統數據庫中的數據庫。ES 數據的索引、搜索和分析都是基于索引完成的。Cluster 中可以創建任意個 Index。
Type/ 類型:Type 是 Index 中數據的,用于標識不同的文檔字段信息的集合,相當于傳統數據庫的表。在 2.0 之后的版本直接做了插入檢查,禁止一個索引下不同 Type 的字段類型沖突。
Document/ 文檔:Document 是 ES 數據可被索引化的基本的存儲單元,需要存儲在 Type 中,相當于傳統數據庫的行記錄,使用 json 來表示。
Shard/ 分片:Shard 是 ES 基本存儲容器,是 Lucene 的一個實例,因此具有完整的存儲搜索分析功能。Shard 是 ES 擴展性和可靠性的基礎。ES 默認在創建索引時會創建 5 個分片,這個數量可以修改。分片的數量只能在創建索引的時候指定,不能在后期修改。
如果一個索引數據量很大,會造成硬件硬盤和搜索速度的瓶頸。如果分成多個分片,分片可以分攤壓力。
分片允許用戶進行水平的擴展和拆分
分片允許分布式的操作,可以提高搜索以及其他操作的效率
Replica/ 備份:拷貝一份分片就完成了分片的備份。備份的數量可以動態定義。
當一個分片失敗或者下線時,備份的分片可以代替工作,提高了高可用性。
備份的分片也可以執行搜索操作,分攤了搜索的壓力。
NRT(Near Real Time):ES 并不是一個標準的數據庫,它不像 MongoDB,它側重于對存儲的數據進行搜索。因此要注意到它不是實時讀寫 的,這也就意味著,剛剛存儲的數據,并不能馬上查詢到。缺省配置下,shard 每秒自動更新,所以會有 1S 的延時。
上述就是丸趣 TV 小編為大家分享的 Elasticsearch 的基本概念是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。