聲明:本系列(標(biāo)題含有一,二....)的文章都基于https://es.xiaoleilu.com/010_Intro/25_Tutorial_Indexing.html
ES是什么
Elasticsearch是一個(gè)基于Apache Lucene(TM)的開(kāi)源搜索引擎由驹。無(wú)論在開(kāi)源還是專有領(lǐng)域互艾,Lucene可以被認(rèn)為是迄今為止最先進(jìn)、性能最好的毅整、功能最全的搜索引擎庫(kù)阵漏。
但是驻民,Lucene只是一個(gè)庫(kù)。想要使用它履怯,你必須使用Java來(lái)作為開(kāi)發(fā)語(yǔ)言并將其直接集成到你的應(yīng)用中回还,更糟糕的是,Lucene非常復(fù)雜叹洲,你需要深入了解檢索的相關(guān)知識(shí)來(lái)理解它是如何工作的柠硕。
Elasticsearch也使用Java開(kāi)發(fā)并使用Lucene作為其核心來(lái)實(shí)現(xiàn)所有索引和搜索的功能,但是它的目的是通過(guò)簡(jiǎn)單的RESTful API
來(lái)隱藏Lucene的復(fù)雜性运提,從而讓全文搜索變得簡(jiǎn)單仅叫。
不過(guò)帜篇,Elasticsearch不僅僅是Lucene和全文搜索,我們還能這樣去描述它:
- 分布式的實(shí)時(shí)文件存儲(chǔ)诫咱,每個(gè)字段都被索引并可被搜索
- 分布式的實(shí)時(shí)分析搜索引擎
- 可以擴(kuò)展到上百臺(tái)服務(wù)器笙隙,處理PB級(jí)結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)
而且,所有的這些功能被集成到一個(gè)服務(wù)里面坎缭,你的應(yīng)用可以通過(guò)簡(jiǎn)單的RESTful API
竟痰、各種語(yǔ)言的客戶端甚至命令行與之交互。
上手Elasticsearch非常容易掏呼。它提供了許多合理的缺省值坏快,并對(duì)初學(xué)者隱藏了復(fù)雜的搜索引擎理論。它開(kāi)箱即用(安裝即可使用)憎夷,只需很少的學(xué)習(xí)既可在生產(chǎn)環(huán)境中使用莽鸿。
Elasticsearch在Apache 2 license下許可使用,可以免費(fèi)下載拾给、使用和修改祥得。
隨著你對(duì)Elasticsearch的理解加深,你可以根據(jù)不同的問(wèn)題領(lǐng)域定制Elasticsearch的高級(jí)特性蒋得,這一切都是可配置的级及,并且配置非常靈活。
安裝Marvel
Marvel是Elasticsearch的管理和監(jiān)控工具额衙,在開(kāi)發(fā)環(huán)境下免費(fèi)使用饮焦。它包含了一個(gè)叫做Sense的交互式控制臺(tái),使用戶方便的通過(guò)瀏覽器直接與Elasticsearch進(jìn)行交互窍侧。
Elasticsearch線上文檔中的很多示例代碼都附帶一個(gè)View in Sense的鏈接县踢。點(diǎn)擊進(jìn)去,就會(huì)在Sense控制臺(tái)打開(kāi)相應(yīng)的實(shí)例伟件。
安裝Marvel不是必須的硼啤,但是它可以通過(guò)在你本地Elasticsearch集群中運(yùn)行示例代碼而增加與此書(shū)的互動(dòng)性。
Marvel是一個(gè)插件锋爪,可在Elasticsearch目錄中運(yùn)行以下命令來(lái)下載和安裝:
./bin/plugin -i elasticsearch/marvel/latest
你可能想要禁用監(jiān)控丙曙,你可以通過(guò)以下命令關(guān)閉Marvel:
echo 'marvel.agent.enabled: false' >> ./config/elasticsearch.yml
運(yùn)行Elasticsearch
Elasticsearch已經(jīng)準(zhǔn)備就緒,執(zhí)行以下命令可在前臺(tái)啟動(dòng):
./bin/elasticsearch
啟動(dòng)后其骄,如果只有本地可以訪問(wèn)亏镰,嘗試修改配置文件 elasticsearch.yml
中network.host
(注意配置文件格式不是以#開(kāi)頭的要空一格,:后要空一格) 為network.host: 0.0.0.0
如果想在后臺(tái)以守護(hù)進(jìn)程模式運(yùn)行拯爽,添加-d
參數(shù)索抓。
打開(kāi)另一個(gè)終端進(jìn)行測(cè)試:
curl 'http://localhost:9200/?pretty'
你能看到以下返回信息:
{ "status": 200,
"name": "Shrunken Bones",
"version": { "number": "1.4.0", "lucene_version": "4.10" },
"tagline": "You Know, for Search"
}
這說(shuō)明你的ELasticsearch集群已經(jīng)啟動(dòng)并且正常運(yùn)行,接下來(lái)我們可以開(kāi)始各種實(shí)驗(yàn)了。
集群和節(jié)點(diǎn)
節(jié)點(diǎn)(node)是一個(gè)運(yùn)行著的Elasticsearch實(shí)例逼肯。
集群(cluster)是一組具有相同cluster.name的節(jié)點(diǎn)集合耸黑,他們協(xié)同工作,共享數(shù)據(jù)并提供故障轉(zhuǎn)移和擴(kuò)展功能篮幢,當(dāng)然一個(gè)節(jié)點(diǎn)也可以組成一個(gè)集群大刊。
你最好找一個(gè)合適的名字來(lái)替代cluster.name
的默認(rèn)值,比如你自己的名字三椿,這樣可以防止一個(gè)新啟動(dòng)的節(jié)點(diǎn)加入到相同網(wǎng)絡(luò)中的另一個(gè)同名的集群中缺菌。
你可以通過(guò)修改config
/目錄下的elasticsearch.yml
文件,然后重啟ELasticsearch來(lái)做到這一點(diǎn)搜锰。當(dāng)Elasticsearch在前臺(tái)運(yùn)行伴郁,可以使用Ctrl+C
快捷鍵終止,或者你可以調(diào)用shutdown
API來(lái)關(guān)閉:
curl -XPOST 'http://localhost:9200/_shutdown'
查看Marvel和Sense
如果你安裝了Marvel(作為管理和監(jiān)控的工具)蛋叼,就可以在瀏覽器里通過(guò)以下地址訪問(wèn)它:
http://localhost:9200/_plugin/marvel/
你可以在Marvel中通過(guò)點(diǎn)擊dashboards焊傅,在下拉菜單中訪問(wèn)Sense開(kāi)發(fā)者控制臺(tái),或者直接訪問(wèn)以下地址:
http://localhost:9200/_plugin/marvel/sense/