ElasticSearch,和Solr一樣,是底層基于A(yíng)pache Lucene,且具備高可靠性的企業(yè)級搜索引擎。
ElasticSearch中的一些概念其實(shí)和關(guān)系型數據庫都有對應關(guān)系,比如數據庫在ES中被稱(chēng)為索引,表在ES中被稱(chēng)作Type。
具體對應關(guān)系見(jiàn)下表。

ElasticSearch中的Replica是副本的意思,創(chuàng )建副本的好處有兩個(gè),1,可以分流部分查詢(xún)請求,2,如果集群中的某個(gè)分片丟失了,就可以使用這個(gè)副本將數據全部找回來(lái),因為這個(gè)原因,副本分片和源分片不會(huì )放在同一節點(diǎn)上。 ES中每一個(gè)索引都可以被分成多個(gè)分片,但不一定每個(gè)分片都有副本,但是一旦創(chuàng )建了副本,就會(huì )有主分片的說(shuō)法(作為復制源的分片),分片和副本的數量可以在索引創(chuàng )建的時(shí)候指定。下圖是副本和分片的示意圖,分片和它的副本不會(huì )在同一個(gè)節點(diǎn)上。

在索引創(chuàng )建之后,你可以在任何時(shí)候動(dòng)態(tài)地改變副本的數量,但是你事后不能改變分片的數量。 默認情況下,Elasticsearch中的每個(gè)索引被分片5個(gè)主分片和1套副本,這意味著(zhù),如果你的集群中至少有兩個(gè)節點(diǎn),你的索引將會(huì )有5個(gè)主分片和另外5個(gè)副本,這樣的話(huà)每個(gè)索引總共就有10個(gè)分片。
當ES的一個(gè)節點(diǎn)啟動(dòng)后,它會(huì )通過(guò)廣播方式找到集群中的其他節點(diǎn),并且建立連接。
在集群中,其中的某個(gè)節點(diǎn)會(huì )被選取作為主節點(diǎn),這個(gè)主節點(diǎn)負責管理集群狀態(tài)。這個(gè)主節點(diǎn)對于用戶(hù)來(lái)說(shuō)是透明的,用戶(hù)不需要知道哪個(gè)節點(diǎn)是主節點(diǎn)。任何操作都可以發(fā)送到任何節點(diǎn)。必要的時(shí)候,任何節點(diǎn)可以并行的發(fā)送子查詢(xún)到其他節點(diǎn),并且將得到的響應合并后發(fā)送給用戶(hù),這些操作都不需要訪(fǎng)問(wèn)主節點(diǎn)。
主節點(diǎn)讀取集群信息,在讀取過(guò)程中,它會(huì )檢測分片的情況,哪些分片是主分片,并且是可用的,在這一步之后,所有的分片已經(jīng)準備好了,而副本還沒(méi)有。下一步的操作就是找到那些已經(jīng)被復制過(guò)的分片,將他們作為副本。如果一切順利,那么ES啟動(dòng)成功了,所有的分片和副本都已經(jīng)準備好了。
在ES工作的時(shí)候,主節點(diǎn)會(huì )監控所有的節點(diǎn)是否正常,默認配置為:節點(diǎn)每隔1s主節點(diǎn)會(huì )發(fā)送1次心跳,超時(shí)時(shí)間為30s,測試次數為3次,超過(guò)3次,則認為該節點(diǎn)同主節點(diǎn)已經(jīng)脫離了。如果某一個(gè)節點(diǎn)出現問(wèn)題,ES認為這個(gè)節點(diǎn)損壞,該節點(diǎn)會(huì )從集群中刪除,并且ES會(huì )重新平衡整個(gè)集群。
ES通過(guò)Query DSL (基于json的查詢(xún)語(yǔ)言)來(lái)查詢(xún)數據,在ES內部,每次查詢(xún)分成2個(gè)步驟,分散和聚合,分散是指查詢(xún)所有相關(guān)的分片,聚合是指把所有分片上的查詢(xún)結果合并,排序,處理然后在返回給客戶(hù)端。
ElasticSearch 有4中方式來(lái)構建數據庫,最簡(jiǎn)單的方法是使用index API,將一個(gè)Document發(fā)送到特定的index,一般通過(guò)curl tools實(shí)現。第二第三種方法是通過(guò)bulk API和UDP bulk API。兩者的區別僅在于連接方式。第四種方式是通過(guò)一個(gè)插件-river。river運行在ElasticSearch上,并且可以從外部數據庫導入數據到ES中。需要注意的是,數據構建僅在分片上進(jìn)行,而不能在副本上進(jìn)行。
Vagrant 和 Docker:如何在 OS X 上安裝和設置 Postgres, Elasticsearch 和 Redis http://www.linuxidc.com/Linux/2014-09/106898.htm
分布式搜索ElasticSearch單機與服務(wù)器環(huán)境搭建 http://www.linuxidc.com/Linux/2012-05/60787.htm
ElasticSearch 的詳細介紹:請點(diǎn)這里
ElasticSearch 的下載地址:請點(diǎn)這里
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2014-11/109922.htm

聯(lián)系客服