一、Elasticsearch介紹和安裝
1.1 介紹
Elastic
Elastic官網:https://www.elastic.co/cn/
Elastic有一條完整的產品線:Elasticsearch、Kibana、Logstash等,前面說的三個就是大家常說的ELK技術棧。
Elasticsearch
Elasticsearch官網:https://www.elastic.co/cn/products/elasticsearch
Elasticsearch具備以下特點:
- 分布式,無需人工搭建集群(solr就需要人為配置,使用Zookeeper作為注冊中心)
- Restful風格,一切API都遵循Rest原則,容易上手
- 近實時搜索,數據更新在Elasticsearch中幾乎是完全同步的。
版本
目前Elasticsearch最新的版本是6.4.2,我這里使用的版本是6.2.4
安裝Elasticsearch前提條件:JDK1.8及以上
1.2 安裝和配置
下載地址:https://www.elastic.co/downloads/past-releases
安裝:Elasticsearch無需安裝,解壓即用。
運行:進入elasticsearch/bin目錄,可以看到下面的執行文件:
雙擊運行
可以看到綁定了兩個端口:
- 9300:Java程序訪問的端口
- 9200:瀏覽器、postman訪問的端口
我們在瀏覽器中訪問:http://127.0.0.1:9200
我在瀏覽器上安裝了一個插件所顯示的效果
看到了上面的信息,說明你的Elasticsearch已經安裝成功了,但是為了方便我們開發的時候查看數據,我推薦安裝一個Elasticsearch的客戶端工具:Head。
在此之前先將ElasticSearch安裝為Windows服務。
1.3 ElasticSearch安裝為Windows服務
命令行啟動:
啟動時通過cmd直接在elasticsearch的bin目錄下執行elasticsearch 。這樣直接啟動的話集群名稱會默認為elasticsearch,節點名稱會隨機生成。
停止就直接在cmd界面按Ctrl+C 。
其實我們也可以將elasticsearch設置為windows系統服務: elasticsearch的bin目錄下有一個elasticsearch-service.bat
進入bin目錄下執行:
然后在系統服務中可以看到Elasticsearch已成為系統服務。
elasticsearch-service.bat后面還可以執行這些命令
install: 安裝Elasticsearch服務
remove: 刪除已安裝的Elasticsearch服務(如果啟動則停止服務)
start: 啟動Elasticsearch服務(如果已安裝)
stop: 停止服務(如果啟動)
manager:啟動GUI來管理已安裝的服務
下面我講述的是如何安裝Head插件。
1.4 安裝Head插件及NSSM
1 什么是Head
Ealsticsearch只是后端提供各種API,那么怎么直觀的使用它呢?
Elasticsearch-head是一款專門針對於Elasticsearch的客戶端工具,是一個基於node.js的前端工程
Elasticsearch-head配置包,下載地址:https://github.com/mobz/elasticsearch-head
2 安裝
注意:es5以上版本安裝head需要安裝node和grunt
第一步:從地址:https://nodejs.org/en/download/ 下載相應系統的msi,雙擊安裝。
第二步:安裝完成用cmd進入安裝目錄執行 node -v可查看版本號
能看到版本號說明node安裝成功
第三步:執行 npm install -g grunt-cli 安裝grunt ,安裝完成后執行grunt -version查看是否安裝成功,會顯示安裝的版本號
3 配置運行
第一步:進入Elasticsearch安裝目錄下的config目錄,修改elasticsearch.yml文件.在文件的末尾加入以下代碼
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
然后去掉network.host: 192.168.0.1的注釋並改為network.host: 0.0.0.0,去掉cluster.name;node.name;http.port的注釋(也就是去掉#)
第二步:雙擊elasticsearch.bat重啟Elasticsearch
第三步:在https://github.com/mobz/elasticsearch-head中下載head插件,選擇下載zip
第四步:解壓到指定文件夾下,D:\environment\elasticsearch-head-master 進入該文件夾,修改D:\environment\elasticsearch-head-master\Gruntfile.js 在對應的位置加上hostname:’*’
第五步:打開cmd命令行窗口 ,在D:\environment\elasticsearch-head-master 下執行npm install 安裝,完成后執行grunt server 或者npm run start 運行head插件,如果運行不成功建議重新安裝grunt。
4 使用NSSM將elasticsearch-head插件安裝為Windows服務
在當前目錄下,新建文件run.bat 內容: npm run start
- 下載NSSM:http://www.nssm.cc/download
-
將
NSSM
解壓,eg:E盤,進入到E:\nssm-2.24\win64 ,執行cmd -
nssm install elasticsearch-head 【nssm install <服務名> 例如:nssm install Elasticsearch(自定義服務名)】
彈出如下界面
Path
: 填寫啟動文件路徑(${LOGSTASH_HOME}\bin\xxx.bat
)Startup directory
: 填寫啟動文件目錄(${LOGSTASH_HOME}\bin
)Detail
: 填寫服務名稱Dependencies
: 填寫此服務啟動需要依賴哪個服務(一般配置為要先啟動elasticsearch
,再啟動logstash
)
附:nssm常用命令:
5 成功
打開瀏覽器訪問:http://127.0.0.1:9100
1.5 elasticsearch-head的使用
1.6 安裝Ik分詞器
ElasticSearch 默認采用的分詞器, 是單個字分詞 ,效果很差 ,所以我們需要安裝一個更實用的分詞器,這里采用IK分詞器
搜索【IK Analyzer 3.0】
http://www.oschina.net/news/2660
Lucene的IK分詞器早在2012年已經沒有維護了,現在我們要使用的是在其基礎上維護升級的版本,並且開發為Elasticsearch的集成插件了,與Elasticsearch一起維護升級,版本也保持一致,最新版本:6.4.2
1 下載
注意:你的Elasticsearch和IK分詞器必須版本統一
源碼下載地址:https://github.com/medcl/elasticsearch-analysis-ik/tree/6.2.x
jar包下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
2 安裝:無需安裝,解壓即可使用
我們將其改名為ik,並復制到Elasticsearch的解壓目錄,如下圖所示
然后重啟elasticsearch:
Ik分詞器安裝成功。
3 IK擴展詞和停用詞的簡單介紹
擴展詞和停用詞文件:
4 測試
OK,到這里Elasticsearch環境搭建就成功了
參考:Elasticsearch環境搭建和介紹(Windows)