Elasticsearch到底是什么玩意
? ? ? ? Elasticsearch(ES)是一款基于Lucene的分布式油够、可擴(kuò)展、高可用互亮、實(shí)時的搜索與數(shù)據(jù)分析引擎臼勉。Lucene是使用Java實(shí)現(xiàn)的一套全文檢索類庫尔破,ES基于Lucene做了分布式相關(guān)的工作。
Elasticsearch有哪些應(yīng)用
? ? ? ? 1债蜜、全文檢索
? ? ? ? 2梨州、結(jié)構(gòu)化查詢
? ? ? ? 3、近實(shí)時數(shù)據(jù)
? ? ? ? 4诞吱、海量數(shù)據(jù)進(jìn)行近實(shí)時的處理
? ? ? ? 5舟奠、分析統(tǒng)計
Elasticsearch相關(guān)概念
? ? ? ? 1狈涮、集群(cluster):一個集群就是由一個或多個節(jié)點(diǎn)組織在一起,它們共同持有你整個的數(shù)據(jù)鸭栖,并一起提供索引和搜索功能歌馍。
? ? ? ? 2、節(jié)點(diǎn)(node):一個節(jié)點(diǎn)就是集群中的一個服務(wù)器晕鹊,作為集群的一部分松却,參與集群的索引和搜索功能。
? ? ? ? 3溅话、索引(index):?一個索引就是一個具有相似特征的文檔集合晓锻,相當(dāng)于一個數(shù)據(jù)集。
? ? ? ? 4飞几、類型(type):在一個索引中砚哆,你可以定義一種或多種類型,相當(dāng)于對一個索引中數(shù)據(jù)的邏輯劃分(ES官方文檔明確說明不推薦使用type屑墨,即建議一個索引只有一個type躁锁。ES7.0已經(jīng)廢棄了type)。
? ? ? ? 5卵史、文檔(document):?一個文檔是一個可被索引的基礎(chǔ)信息單元战转,就是索引里面的一條數(shù)據(jù),使用JSON格式來表示以躯。
? ? ? ? 6槐秧、域(field): 文檔中的一個數(shù)據(jù)字段。一個文檔由多個域組成忧设。
? ? ? ? 7刁标、分片(shards):分片是索引的一部分,一個索引由多個分片組成址晕。每個分片可以分布在不同的節(jié)點(diǎn)上膀懈,ES會根據(jù)文檔id(也可以指定其他字段)做hash,使用得到的hash值將文檔路由到指定分片上斩箫。分片是ES做Data Rebalance的最小單元吏砂。
? ? ? ? 8、副本(replicas):創(chuàng)建索引時可以為索引指定0個或者多個副本乘客。副本是分片級別的狐血,即索引的分片由1個主分片(primary shard)和0個或者多個副本分片(replica shard)組成。primary shard可以接受讀取和寫入請求易核,replica shard只能接受讀取請求匈织。所以副本只能提高數(shù)據(jù)的可用性和并發(fā)讀取能力。當(dāng)primary shard所在服務(wù)器的節(jié)點(diǎn)掛掉以后,ES會通過leader選舉機(jī)制將replica shard為primary shard缀匕。
Elasticsearch與傳統(tǒng)數(shù)據(jù)庫對應(yīng)關(guān)系
Elasticsearch生態(tài)
? ? ? ? 1纳决、Kibana:ES的數(shù)據(jù)查詢、分析和監(jiān)控的可視化平臺乡小。ES6.3以后阔加,Kibana開源免費(fèi)。
? ? ? ? 2满钟、Logstash:開源的服務(wù)器端數(shù)據(jù)處理管道胜榔,能夠同時從多個來源采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)湃番,然后將數(shù)據(jù)發(fā)送到您最喜歡的 “存儲庫” 中夭织。
????????3、Security:ES的權(quán)限管理工具吠撮。從 6.8 和 7.1 版本開始尊惰,核心安全功能(例如 TLS、文件和原生 Realm 身份驗(yàn)證泥兰,以及基于角色的訪問控制)免費(fèi)提供弄屡。
????????4、Curator:ES的索引和快照管理工具逾条。