Elasticsearch第一篇:在 Windows 上的環境搭建

      本文介紹如何在 windows 10 ,64位操做系統上安裝最新版本 Elasticsearch、以及相關插件。以前看了很多園友的文章,用到的版本都比較低,尤爲是插件的版本要和ES的版本相對應等這些問題,介紹的不是很詳細,乾脆本身記錄一下安裝配置過程,也供他人蔘考。javascript

Elasticsearch簡介

      Elasticsearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java語言開發的,並做爲Apache許可條款下的開放源碼發佈,是一種流行的企業級搜索引擎。html

配置 java 環境

      因爲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 

下載並安裝 Elasticsearch

      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插件

      安裝 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

      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 要怎麼用,之後再來詳細說明。

安裝分詞器 IK

      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就能夠了呢?還有,若是我原來就創建了索引庫,更新分詞器後,應該怎麼處理原來的索引?知道的朋友能夠評論一下。

相關文章
相關標籤/搜索