第零步:文件准備
需要准備的文件如下:

- 第一個文件是elasticsearch的安裝包,這里用的是7.14.0的版本;
- 第二個文件是ik中文分詞器,可以更智能的將一個中文語句按“詞”進行拆分查詢,默認的分詞器會將語句逐字拆分,不太適用於中文語境。
- 第三個是head插件,可以更直觀的操作elasticsearch,不過在裝了Kibana后,就主要以Kibana為主來操作ES。
- 第四個是JDK 11的安裝程序。
- 第五個是node安裝包,由於head插件是基於nodejs開發,所以需要nodejs。
文件准備好后,可以開始執行安裝。
第一步:安裝JDK 11
1:解壓JDK安裝包至/usr/local/java目錄:

2:配置環境變量:
執行vi /etc/profile命令,在文檔末尾增加:
export JAVA_HOME=/usr/local/java/jdk-11.0.11
export ES_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
執行 :x 保存並退出后,執行source /etc/profile命令使配置生效。
3:檢查安裝是否完成:
[root@aris ~]# java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
出現上述內容則表示安裝成功,可以進行下一步操作。
第二步:安裝ES 7.14.0
如果你的系統配置足夠(主要是可用內存大於1G)ES 7.14幾乎是開箱即用的。
1:ES不允許以root身份運行,因此需要先創建專用用戶,這里創建一個elastic用戶,專門用於啟動ES相關的內容。
使用 useradd elastic 命令添加用戶;
使用 passwd elastic 命令為用戶設置密碼;
2:將ES安裝文件解壓至/usr/local/elastic目錄。
在elastic所在文件夾中,執行chown -R elastic:elastic 命令,將該文件夾及其所有內容的所有者改為elastic。

3:其實這時候已經可以用elastic用戶啟動ES了,但通常用來開發測試的服務器配置不夠,需要調整配置參數。另一方面,ES啟動后默認只允許在本地訪問,如果要通過服務器的外網IP訪問ES,也需要修改一些配置,要修改位於config目錄下的
elasticsearch.yml文件。
在該文件的NET WORK部分:

Discovery和Various部分

最后兩行配置主要用於允許跨域訪問,ES 默認端口是9200,Head默認使用9100,當用瀏覽器打開head頁面,連接9100端口的ES時,瀏覽器會提示跨域無法訪問,這里的配置就是為了解決這個問題。
另外需要調整jvm堆大小(如果配置內存足夠大4G以上,則可以不修改這個配置):

接下來配置/etc/security/limits.conf文件,在末尾增加下面兩行:
elastic soft nofile 65536
elastic hard nofile 131072
配置用於修改分配給elastic用戶的文件描述符數量,解決啟動可能出現 max number of threads [2048] for user [es] is too low, increase to at least [4096]的問題。

4:嘗試啟動ES
以elastic用戶身份進入ES的bin目錄,執行./elasticsearch -d啟動:

如果啟動報錯,根據錯誤提示排查即可,沒有錯誤輸出,則可以嘗試訪問:

看到經典的問候語:“You know,for Search”則表示啟動成功,從外部嘗試訪問:

至此,ES安裝成功。
第三步:安裝node環境:
1:node安裝也非常簡單,將下載的node-v14.17.4-linux-x64.tar文件解壓到/usr/local/node目錄,配置環境變量即可:

環境變量仍然是在/etc/profile中配置:
export NODE_HOME=/usr/local/node/node-v14.17.4-linux-x64/
export PATH=$NODE_HOME/bin:$PATH
2:檢查安裝是否成功:

3:安裝cnpm,也非常簡單,一條命令搞定:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安裝完成后,執行cnpm命令檢查是否安裝成功:

第四步:安裝head插件
head插件安裝也非常簡單:
1:解壓安裝文件elasticsearch-head-master.zip,我這里還是解壓到/usr/local/elastic/目錄:

2:install一下然后啟動
進入解壓后的elasticsearch-head-master目錄,執行cnpm install:(我這里是已經執行過了的,第一次執行會需要一些時間)

啟動(使用nohup可以讓程序在后台運行,末尾的&符號可以讓你在啟動程序后繼續執行命令):

如果需要看啟動日志,則查看nohup.out文件即可,如果不想將日志輸出到這里,可以使用 > 重定向輸出。
3:訪問驗證:
瀏覽器輸入 http://服務器ip:9100 來訪問:

如果無法訪問,需要查看上一步的啟動日志。
此時還沒連接到ES,修改connect按鈕左邊的地址為服務器ip:9200后,點擊連接按鈕連接到ES:

(這里已經有了一些練習時建立的索引)
至此,head插件安裝完畢。
第五步:安裝Kibana
Kibanaan也是開箱即用的,將下載的安裝文件kibana-7.14.0-linux-x86_64.tar.gz解壓,進入解壓后文件夾中的bin目錄,執行kibana文件即可成功啟動:

看到下面的提示信息表示已經啟動成功:

嘗試訪問5601端口,看到下面的界面表示啟動成功:

第六步:IK分詞器安裝
IK分詞器是ES的一個插件,只需要解壓文件到plugin文件夾下就可以:

重啟ES即可使IK分詞器生效。
上述安裝流程只適用於個人學習,正式生產環境中,即使不使用集群環境(ES單節點也是自成集群),也需要進行安全配置后才可以對外提供訪問。
環境准備好后,ES的學習重點在於熟練掌握ES提供的Restful風格的API接口,如何操作索引和文檔,這些熟悉后再去學習與springboot的集成都是非常簡單的。
