本文介紹如何在 windows 10 ,64位操做系統上安裝最新版本 Elasticsearch、以及相關插件。以前看了很多園友的文章,用到的版本都比較低,尤爲是插件的版本要和ES的版本相對應等這些問題,介紹的不是很詳細,乾脆本身記錄一下安裝配置過程,也供他人蔘考。javascript
Elasticsearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java語言開發的,並做爲Apache許可條款下的開放源碼發佈,是一種流行的企業級搜索引擎。html
因爲ES是Java語言開發的,因此這裏須要先安裝Java環境,jdk 下載地址是:java
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlnode
下載時,須要先註冊Oracle帳號,註冊後選擇下載 Windows x 64 .exe 這個最新版本(目前是 2020年7月,版本是 jdk14 )git
雙擊 jdk-14_windows-x64-bin ,而後一直點擊 「下一步」 按鈕,直到安裝完畢,默認的安裝路徑是 C:\Program Files\Java\jdk-14\ 按照默認路徑安裝便可github
接下來,須要配置Java環境變量,右擊 「個人電腦」 ——點擊 「屬性」 ——點擊 「高級系統設置」,以下圖web
在新窗口的 「高級」 選項卡中,點擊 「環境變量」 ,再點擊系統變量(S)裏的 「新建」 按鈕,彈出新窗口以下圖所示npm
變量名填入: JAVA_HOME 變量值填入安裝的路徑: C:\Program Files\Java\jdk-14 windows
而後在系統變量(S)中,選中Path 這個變量,點擊 「編輯」 按鈕,打開編輯窗口,再點擊 「新建」 按鈕,輸入 %JAVA_HOME%\bin 以下圖所示瀏覽器
最後驗證一下配置是否成功,打開 cmd 窗口(以管理員形式打開),輸入命令 java -version 或者命令 javac 能夠看安裝是否成功,以下圖
以上說明安裝成功,java 版本是14
ES工具包下載地址是:http://www.elasticsearch.org/download/
咱們選擇版本 7.8.0 window 這個版本,先在D盤建一個 ES 目錄(方便管理),將下載的包解壓到 ES 目錄中,以下圖所示
以管理員身份運行,打開cmd窗口,進入ES的bin目錄: cd /d D:\ES\elasticsearch-7.8.0\bin
而後運行命令 elasticsearch.bat
稍等片刻,而後在瀏覽器中訪問 http://localhost:9200/
以上說明 ES 相關包已經成功安裝
安裝 Head 插件的前提,是須要將 node、grunt 安裝和配置完善。
一、首先下載 node.js
下載地址是 https://nodejs.org/en/download/
選擇window 64位的版本 v12.18.1,一直點擊 「下一步」 按鈕,直到安裝完畢,下載完成能夠經過命令 node -v 查看安裝版本以及是否成功,以下圖
二、安裝grunt
以管理員身份打開cmd命令窗口,執行 npm install -g grunt-cli 而後經過 grunt -version 看安裝的版本
三、下載 Head
Head 相關文檔 http://mobz.github.io/elasticsearch-head/
或者直接到 https://github.com/mobz/elasticsearch-head 下載 zip 包到本地。請注意,上面ES安裝的版本是 v.7.8.0 ,這裏 Head 插件也要選擇 master 這個版本下載。
下載完,咱們將其解壓到上面提到的D盤ES目錄,跟ES放在同一級目錄,方便管理,以下圖所示
cmd 進入head 目錄: cd /d D:\ES\elasticsearch-head-master
而後執行命令:npm install 以下圖所示
上圖執行過程卡住了,主要是缺乏 phantomjs-2.1.1-windows ,按照上邊的提示,先下載這個文件,
而後放在目錄 C:\Users\ADMINI~1\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip
順便解壓一下,再從新試一下執行 npm install ,此次執行成功了,見下圖
而後執行 npm start ,啓動 Head 插件,以下圖所示
再訪問 http://localhost:9100 能夠看到下圖效果
雖然Head已是安裝成功,可是目前是未鏈接狀態,上網查一下資料,須要作如下配置:
找到文件 D:\ES\elasticsearch-7.8.0\config\elasticsearch.yml 在該文件最後添加如下語句:
http.cors.enabled: true
http.cors.allow-origin: "*"
而後再重啓ES,重啓Head:
重啓ES cd /d D:\ES\elasticsearch-7.8.0\bin\elasticsearch.bat
重啓Head cd /d D:\ES\elasticsearch-head-master\npm start
再訪問 http://localhost:9200/ 以及 http://localhost:9100/
這時能夠看到,如今鏈接上了,灰色變成綠色,Head 安裝成功。
總結一下,Head 插件安裝比較麻煩,可是經過看報錯信息以及網上資料文檔,多多嘗試,是能夠解決的。
Kibana 插件是一個可視化的插件,非必須,若是須要安裝也能夠參考如下的流程
下載地址是 https://www.elastic.co/cn/downloads/kibana
注意,咱們 用的ES版本是 v7.8.0 , Kibana 安裝的版本也是要和ES的同步,這裏選擇 Kibana版本爲 7.8.0
一樣,下載完畢後,咱們將其解壓到 D:\ES\kibana-7.8.0
一樣以管理員身份打開cmd 窗口執行命令
cd /d D:\ES\kibana-7.8.0\bin
kibana.bat
執行完,能正常打開 http://localhost:5601 即成功,Kibana 要怎麼用,之後再來詳細說明。
ES默認的分詞器,對中文的分解不是很好,因此須要用到其它分詞器,這裏以IK分詞器爲例,介紹怎麼安裝。
首先往ES添加索引,用 postman 提交數據:
put http://localhost:9200/db_news/new/1
{ "title":"今日頭條新聞", "author":"新華時報記者", "content":"今日券商股繼續漲停" }
提交後能夠看到返回結果
{ "_index": "db_news", "_type": "new", "_id": "1", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }
若是咱們用ES原生的分詞器,例如
get http://localhost:9200/db_news/_analyze
{ "analyzer":"standard", "text":"我是中國人,我愛本身的祖國" }
分詞結果是
{ "tokens": [ { "token": "我", "start_offset": 0, "end_offset": 1, "type": "<IDEOGRAPHIC>", "position": 0 }, { "token": "是", "start_offset": 1, "end_offset": 2, "type": "<IDEOGRAPHIC>", "position": 1 }, { "token": "中", "start_offset": 2, "end_offset": 3, "type": "<IDEOGRAPHIC>", "position": 2 }, { "token": "國", "start_offset": 3, "end_offset": 4, "type": "<IDEOGRAPHIC>", "position": 3 }, { "token": "人", "start_offset": 4, "end_offset": 5, "type": "<IDEOGRAPHIC>", "position": 4 }, { "token": "我", "start_offset": 6, "end_offset": 7, "type": "<IDEOGRAPHIC>", "position": 5 }, { "token": "愛", "start_offset": 7, "end_offset": 8, "type": "<IDEOGRAPHIC>", "position": 6 }, { "token": "自", "start_offset": 8, "end_offset": 9, "type": "<IDEOGRAPHIC>", "position": 7 }, { "token": "己", "start_offset": 9, "end_offset": 10, "type": "<IDEOGRAPHIC>", "position": 8 }, { "token": "的", "start_offset": 10, "end_offset": 11, "type": "<IDEOGRAPHIC>", "position": 9 }, { "token": "祖", "start_offset": 11, "end_offset": 12, "type": "<IDEOGRAPHIC>", "position": 10 }, { "token": "國", "start_offset": 12, "end_offset": 13, "type": "<IDEOGRAPHIC>", "position": 11 } ] }
顯然,這樣的分詞毫無心義,這也是咱們要安裝IK分詞器的緣由。
IK分詞器下載地址 https://github.com/medcl/elasticsearch-analysis-ik 一樣用 7.8.0 版本
在 D:\ES\elasticsearch-7.8.0\plugins 新建 ik 文件夾,將以上下載的包解壓到這裏,以下圖所示
而後重啓 ES,再進行IK分詞測試
Get http://localhost:9200/db_news/_analyze
{ "analyzer":"ik_smart", "text":"我是中國人,我愛本身的祖國" }
返回分詞結果是
{ "tokens": [ { "token": "我", "start_offset": 0, "end_offset": 1, "type": "CN_CHAR", "position": 0 }, { "token": "是", "start_offset": 1, "end_offset": 2, "type": "CN_CHAR", "position": 1 }, { "token": "中國人", "start_offset": 2, "end_offset": 5, "type": "CN_WORD", "position": 2 }, { "token": "我", "start_offset": 6, "end_offset": 7, "type": "CN_CHAR", "position": 3 }, { "token": "愛", "start_offset": 7, "end_offset": 8, "type": "CN_CHAR", "position": 4 }, { "token": "本身", "start_offset": 8, "end_offset": 10, "type": "CN_WORD", "position": 5 }, { "token": "的", "start_offset": 10, "end_offset": 11, "type": "CN_CHAR", "position": 6 }, { "token": "祖國", "start_offset": 11, "end_offset": 13, "type": "CN_WORD", "position": 7 } ] }
能夠看到,分詞後是有意義的,至此,IK分詞也安裝成功,本文結束。
啓動 ES cd /d D:\ES\elasticsearch-7.8.0\bin\elasticsearch.bat 訪問 http://localhost:9200/
啓動Head cd /d D:\ES\elasticsearch-head-master\npm start 訪問 http://localhost:9100/
啓動Kibana cd /d D:\ES\kibana-7.8.0\bin\kibana.bat 訪問 http://localhost:5601
存在問題:以上我安裝IK分詞器後,直接重啓ES,分詞器立刻生效,若是我換其它分詞器,是否是也是直接重啓ES就能夠了呢?還有,若是我原來就創建了索引庫,更新分詞器後,應該怎麼處理原來的索引?知道的朋友能夠評論一下。