目錄
返回目錄:http://www.cnblogs.com/hanyinglong/p/5464604.html
1.ElasticSearch簡單說明
a.ElasticSearch是一個基於Lucene開發的搜索服務器,具有分布式多用戶的能力,ElasticSearch是用Java開發的開源項目(Apache許可條款),基於Restful Web接口,能夠達到實時搜索、穩定、可靠、快速、高性能、安裝使用方便,同時它的橫向擴展能力非常強,不需要重啟服務。
b.ElasticSearch是一個非常好用的實時分布式搜索和分析引擎,可以幫助我們快速的處理大規模數據,也可以用於全文檢索,結構化搜索以及分析等。
c.目前很多網站都在使用ElasticSearch進行全文檢索,例如:GitHub、StackOverflow、Wiki等。
d.ElasticSearch式建立在全文檢索引擎Lucene基礎上的,而Lucene是最先進、高效的開元搜索引擎框架,但是Lucene只是一個框架,要充分利用它的功能,我們需要很高的學習成本,而ElasticSearch使用Lucene作為內部引擎,在其基礎上封裝了功能強大的Restful API,讓開發人員可以在不需要了解背后復雜的邏輯,即可實現比較高效的搜索。
e.關於Lucene我在前面寫過幾篇博客,並且在GitHub上開源了一個Demo,博客地址是:http://www.cnblogs.com/hanyinglong/p/5387816.html
f.ElasticSearch官網:https://www.elastic.co/products/elasticsearch/
g.ElasticSearch權威指南 http://www.learnes.net/
2.准備安裝文件
a.工欲善其事必先利其器,通過上面簡單的描述想必大家已經知道ElasticSearch是干什么的了,那么這時候我們就需要去使用它,而在用它之前則必須先將其安裝,故而在這篇博客我將簡單描述一下EasticSearch的安裝,ElasticSearch_Head的配置,分詞插件的配置。
b. ElasticSearch的安裝包,下載地址:https://www.elastic.co/downloads/elasticsearch,下載最新的tar包即可。
c. ElasticSearch_Head配置包,下載地址:https://github.com/mobz/elasticsearch-head,下載最新的Zip壓縮包即可。
d.分詞插件,下載地址:https://github.com/medcl/elasticsearch-analysis-ik,克隆源碼進行操作。
e.因Elasticsearch是基於java寫的,所以它的運行環境中需要java的支持,在Linux下執行命令:java -version,檢查Jar包是否安裝,如果安裝,則可以繼續操作安裝工作,否則安裝java jar包,如何安裝請參看博客:http://www.cnblogs.com/hanyinglong/p/5025635.html。(JDK安裝7以上)
f. ElasticSearch_ServiceWrapper配置包,下載地址: https://github.com/elastic/elasticsearch-servicewrapper
g. 本次操作需要用到的軟件以及系統如下:虛擬機(Vmware)、虛擬機中安裝的Centos系統、Xshell、Xftp、上面的安裝包、Git、Maven,至於如何使用它們我們下面會說到。
3.ElasticSearch安裝
a.通過上面簡單的准備工作之后,現在已經擁有了可以安裝和發布的環境,如果沒有,請參考上面的說明,自行查詢安裝。
b.使用XShell連接Centos,連接成功后使用命令跳轉到local下面創建屬於自己的文件夾kencery,在此文件夾下創建elasticsearch文件夾,命令如下;
b.1 (1):cd usr/local/ (2):mkdir kencery (3):cd kencery/ (4):mkdir elasticsearch (5):cd elasticsearch/
c. 然后使用Xftp將在准備安裝文件中下載的Elasticsearch包復制到elasticsearch文件夾西面,如圖所示:
d. 將上傳的的elasticsearch-2.3.1.tar.gz包解壓,解壓之后命名為:elasticsearch,至於安裝包里面含有上面內容,請自行使用命令ls -l查看。
d.1 tar -zxvf elasticsearch-2.3.1.tar.gz
d.2 mv elasticsearch-2.3.1 elasticsearch
e. 進入elasticsearch文件后運行腳本啟動,命令如下:
e.1 cd elasticsearch
e.2 調用啟動命令:./bin/elasticsearch(如果以root用戶啟動,正常情況下這里會報錯)。
f.在root賬戶下面調用啟動命令出錯的解決方案
f.1 當使用root賬戶調用啟動命令出現錯誤信息,錯誤提示信息如下:
f.2 為什么會這樣呢?這是因為處於系統安裝考慮的設置,由於Elasticsearch可以接收用戶輸入的腳本並且執行,為了系統安全考慮,不允許root賬號啟動,所以建議給Elasticsearch單獨創建一個用戶來運行Elasticsearch。
f.3 創建elasticsearch用戶組以及elasticsearch用戶,命令如下:
groupadd elasticsearch
useradd elasticsearch(用戶名) -g elasticsearch(組名) -p elasticsearch(密碼)
f.4 更改Elasticsearch文件夾以及內部文件的所屬用戶以及組為elasticsearch,修改完成之后如圖所示:
chown -R elasticsearch:elasticsearch elasticsearch
f.5 切換到elasticsearch用戶下,再次執行啟動命令,如圖所示,則說明啟動成功
g.Elasticsearch后端啟動命令為:./bin/elasticsearch -d
h.安裝完成后使用IP訪問
h.1 當安裝完成之后我們當然希望他在其他局域網內通過IP可以訪問,可是執行:http://192.168.37.137:9200/,始終不能連接成功,而且centos下用localhost、127.0.0.1都能夠連接成功。
h.2 這時候我們就需要修改配置文件了,首先使用ifconfig查詢你的linux的IP是多少,得到IP。
h.3 跳轉到Elasticsearch的config配置文件下,使用vim打開elasticsearch.yml,找到里面的"network.host",將其改為你剛才查詢得到的IP,保存。
cd elasticsearch/config/
vim elasticsearch.yml
h.4 重啟ElasticSearch,然后使用http://192.168.37.137:9200/訪問,如果連接不成功則需要考慮是不是端口的原因,配置端口,重啟防火牆即可。
h.5 使用http://192.168.37.137:9200/訪問,訪問結果如圖所示:,則說明ElasticSearch安裝成功。'
h.6 Elasticsearch安裝完成之后,希望能有一個可視化的環境來操作它,那么下來配置:Elasticsearch Head
i. 如果是使用命令./bin/elasticsearch來啟動的Elasticsearch,如果想要停止Elasticsearch的執行,則直接按住鍵盤Ctrl+C則會停止,停止之后你在瀏覽器中再次測試發現已不能操作。
4.ElasticSearch_Head配置
a.Elasticsearch Head是集群管理、數據可視化、增刪改查、查詢語句可視化工具,它的安裝方式有兩種,一種是使用命令安裝,一種是下載包安裝。
b.命令安裝
b.1 cd /usr/local/kencery/elasticsearch/elasticsearch
b.2 ./bin/plugin -install mobz/elasticsearch-head(*)
提示錯誤,錯誤信息是:ERROR: unknown command [-install]. Use [-h] option to list available commands,這是因為Elasticsearch在2.0以上的版本將-install變成了install。
b.3 故而執行命令 ./bin/plugin install mobz/elasticsearch-head即可。
b.4 詳細信息請看:https://github.com/mobz/elasticsearch-head下面的README.md文件。
c.下載包安裝
c.1 在准備下載包的時候我們已經將包下載到電腦本地了,所以講下載下來的包(elasticsearch-head-master)解壓elasticsearch-head-master文件夾。
c.2 在Elasticsearch的安裝的plugin下創建目錄head
cd /usr/local/kencery/elasticsearch/elasticsearch/plugins/
mkdir head
c.3 跳轉到head文件夾下,將剛才解壓的elasticsearch-head-master文件夾下的所有文件拷貝到head目錄下,如圖所示:
c.4 重新啟動ElasticSearch,使用http://192.168.37.137:9200/_plugin/head/訪問瀏覽器,如圖所示,則說明安裝成功。
d.安全問題
如圖就可以看出,該插件可以對數據進行任何增刪改查,所以不建議在正式環境中使用它,如果使用,也必須限制規定的IP能夠使用。
5.分詞插件配置
a. IK Analyzer是一個開源的,基於Java語言開發的輕量級的中文分詞工具包,最初的時候,它是以開源項目Lucene為應用主體的,結合詞典分詞和文法分析算法的中文分詞組件,從3.0版本之后,IK逐漸成為面向java的公用分詞組件,獨立於Lucene項目,同時提供了對Lucene的默認優化實現,IK實現了簡單的分詞 歧義排除算法,標志着IK分詞器從單純的詞典分詞向模擬語義分詞衍化
b. 當安裝完Elasticsearch之后,默認已經含有一個分詞法,就是standard,這個分詞法對英文的支持還可以,但是對中文的支持非常差勁,如圖所示:
http://192.168.37.137:9200/_analyze?analyzer=standard&pretty=true&text=helloworld,%E6%AC%A2%E8%BF%8E%E6%82%A8
c.安裝IK分詞法。
c.1 首先通過Git將源碼下載下來,打開git客戶端輸入命令:git clone https://github.com/medcl/elasticsearch-analysis-ik,如果沒有安裝git,則直接下載zip包。
c.2 下載之后進入到下載的文件夾下,如圖所示:
c.3 因為其源碼使用的maven開發,故而使用maven編譯項目,如果沒有安裝maven,參考博客安裝:http://www.cnblogs.com/hanyinglong/p/5030907.html,命令提示符以管理員的身份運行,如圖所示:
編譯成功在下面會提示Succes。
c.4 打開編譯后的target\releases,解壓壓縮包,然后進入解壓的壓縮包里面可以看到幾個jar包和配置文件。
d.在Elasticsearch的安裝的plugin下創建文件夾ik
cd /usr/local/kencery/elasticsearch/elasticsearch/plugins/
mkdir ik
e. 跳轉到ik文件夾下,將c.4中所說的文件拷貝到ik文件夾下,如圖所示:
f. 重新啟動ElasticSearch,使用http://192.168.37.137:9200/_analyze?analyzer=ik&pretty=true&text=helloworld,%E6%AC%A2%E8%BF%8E%E6%82%A8訪問瀏覽器,如果分詞,則說明配置成功。
每天一點點,都是進步
如果文章哪里存在問題,歡迎大家指出來,我會在第一時間修改。