Elasticsearch是一個基于Apache Lucene(TM)的開源搜索引擎只厘。一開始公司里一位同事是直接采用Luncene進行開發(fā)的,整體開發(fā)下來帆赢,代碼量大罚随,比較復(fù)雜,我就想要尋求一種更好的開發(fā)丁逝,更好維護的框架汁胆,然后發(fā)現(xiàn)了elasticsearch。
Elasticsearch的目的是通過簡單的RESTful API來隱藏Lucene的復(fù)雜性霜幼,從而讓全文搜索變得簡單嫩码。
不過,Elasticsearch不僅僅是Lucene和全文搜索罪既,我們還能這樣去描述它:
分布式的實時文件存儲谢谦,每個字段都被索引并可被搜索
分布式的實時分析搜索引擎
可以擴展到上百臺服務(wù)器,處理PB級結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)
而且萝衩,所有的這些功能被集成到一個服務(wù)里面回挽,你的應(yīng)用可以通過簡單的RESTful API、各種語言的客戶端甚至命令行與之交互猩谊。
上手Elasticsearch非常容易千劈。它提供了許多合理的缺省值,并對初學(xué)者隱藏了復(fù)雜的搜索引擎理論牌捷。它開箱即用(安裝即可使用)墙牌,只需很少的學(xué)習(xí)既可在生產(chǎn)環(huán)境中使用。
Elasticsearch對系統(tǒng)的要求就是安裝對應(yīng)版本的java暗甥,elasticsearch2.x要求java1.7+,最新版5.x要求java1.8+
到elasticsearch.org/download選擇版本下載喜滨,解壓即可。
[root@cc ~]# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-2.4.0.tar.gz
[root@cc ~]# tar -xvf elasticsearch.tar.gz
解壓之后撤防,可以直接通過命令進行啟動
./bin/elasticsearch
ps:elasticsearch5.x這邊可能會碰到啟動不成功的問題虽风,因為5.x開始會有一個jvm的配置文件jvm.options,這邊默認jvm內(nèi)存為4G
之后可以通過瀏覽器或者在另一個窗口進行測試 :http://localhost:9200/?pretty
如有類似以下返回則說明成功了:
{
"cluster_name": "elasticsearch",
"name": "node-1",
"tagline": "You Know, for Search",
"version": {
"build_hash": "ce9f0c7394dee074091dd1bc4e9469251181fc55",
"build_snapshot": false,
"build_timestamp": "2016-08-29T09:14:17Z",
"lucene_version": "5.5.2",
"number": "2.4.0"
}
}
單純通過api很不直觀,幸好elasticsearch提供了插件的安裝辜膝,我這邊安裝elasticsearch-head插件
對于2.x版本可以直接通過以下命令進行安裝
./bin/plugin install mobz/elasticsearch-head
然后訪問 http://localhost:9200/_plugin/head/就可以看到類似一下界面
就可以在此界面上進行數(shù)據(jù)的管理了
對于5.x版本之后无牵,elasticsearch-head則可以需要以一個獨立的node項目運行
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
grunt server
然后訪問http:// localhost:9100 /就可以了
在這個版本下,需要在elasticsearch.yml中進行配置才能讓head進行連接
我這邊的配置是這樣的:
http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/