Elasticsearch02-安裝7.x
1、Windows安裝Elasticsearch
(1)JDK安裝
Elasticsearch是基于java開發的,所以需要安裝JDK。 我們安裝的Elasticsearch版本是7.15,對應JDK至少1.8版本以上。 也可以不安裝jdk,程序啟動會自動到es目錄下啟動內置的jdk。 安裝完成驗證版本:java -version
(2)下載
下載地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-15-0
(3)安裝
Windows 版的 Elasticsearch 的安裝很簡單,解壓即安裝完畢,目錄結構如下
文件夾/文件名稱 說明 bin 存放可執行文件和腳本的目錄。 config 存放配置文件的目錄,通常包含應用程序的設置。 jdk 存放Java開發工具包(JDK)的目錄,可能包含Java運行環境和開發工具。 lib 存放庫文件的目錄,通常包含應用程序運行所需的依賴庫。 logs 存放日志文件的目錄,用于記錄應用程序的運行信息和錯誤信息。 modules 存放模塊文件的目錄,可能包含應用程序的可插拔組件或插件。 plugins 存放插件的目錄,通常用于擴展應用程序的功能。 LICENSE.txt 許可證文件,包含有關軟件使用權限和限制的法律信息。 NOTICE.txt 通知文件,可能包含有關軟件的額外信息,如版權聲明、第三方庫的致謝等。 README.asciidoc 說明文件,通常以ASCIIDoc格式編寫,提供有關如何安裝、配置和使用軟件的指導。
(4)配置文件
配置文件在config/elasticsearch.yml 常用的配置項如下
cluster.name : 配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱。
node.name : 節點名,通常一臺物理服務器就是一個節點,es會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理一個或多個節點組成一個cluster集群,集群是一個邏輯的概念,節點是物理概念,后邊章節會詳細介紹。
path.conf : 設置配置文件的存儲路徑,tar或zip包安裝默認在es根目錄下的config文件夾,rpm安裝默認在/etc/ elasticsearch
path.data : 設置索引數據的存儲路徑,默認是es根目錄下的data文件夾,可以設置多個存儲路徑,用逗號隔開。
path.logs : 設置日志文件的存儲路徑,默認是es根目錄下的logs文件夾
path.plugins : 設置插件的存放路徑,默認是es根目錄下的plugins文件夾
bootstrap.memory_lock : true 設置為true可以鎖住ES使用的內存,避免內存與swap分區交換數據。
network.host : 設置綁定主機的ip地址,設置為0.0.0.0表示綁定任何ip,允許外網訪問,生產環境建議設置為具體的ip。
http.port : 9200 設置對外服務的http端口,默認為9200。
transport.tcp.port : 9300 集群結點之間通信端口
node.master : 指定該節點是否有資格被選舉成為master結點,默認是true,如果原來的master宕機會重新選舉新的master。
node.data : 指定該節點是否存儲索引數據,默認為true。
discovery.zen.ping.unicast.hosts : [ "host1:port" , "host2:port" , "..." ] 設置集群中master節點的初始列表。
discovery.zen.ping.timeout : 3s設置ES自動發現節點連接超時的時間,默認為3秒,如果網絡延遲高可設置大些。
discovery.zen.minimum_master_nodes : 主結點數量的最少值 , 此值的公式為:(master_eligible_nodes / 2) + 1 ,比如:有3個符合要求的主結點,那么這里要設置為2。
node.max_local_storage_nodes : 單機允許的最大存儲結點數,通常單機啟動一個結點建議設置為1,開發環境如果單機啟動多個節點可設置大于1。
(5)啟動并檢查
進入 bin 目錄,點擊 elasticsearch.bat 啟動 ES 服務 9300 端口為 Elasticsearch 集群間組件的通信端口。 9200 端口為瀏覽器訪問的 http協議 RESTful 端口。 瀏覽器輸入訪問地址:http://localhost:9200/如下表示啟動成功。
說明 name: 節點名稱,取自機器的hostname cluster_name: 集群名稱(默認的集群名稱就是elasticsearch) version.number: es版本號 version.lucene_version:封裝的lucene版本號
(6)集群檢查
瀏覽器輸入訪問地址: http://localhost:9200/_cluster/health?pretty status:集群狀態,green 所有分片可用。yellow所有主分片可用。red主分片不可用,集群不可用。
2、Windows安裝Kibana
(1)概述
Kibana 是 ELK 官方的可視化 ES 管理工具
(2)下載
下載地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-15-0
(3)安裝
Windows 版的 Kibana 的安裝很簡單,解壓即安裝完畢,目錄結構如下
文件/文件夾名稱 說明 bin 包含Kibana的可執行文件 config 包含Kibana的配置文件 data Kibana可能會將一些數據存儲在這個目錄中 node 包含Node.js的可執行文件(如果通過NPM安裝) node_modules 包含Kibana項目依賴的所有Node.js模塊 plugins 存放Kibana插件的目錄 src 包含了Kibana的源代碼(如果源碼安裝) x-pack X-Pack擴展包的相關文件 .j18nrc.json 配置國際化(i18n)的資源文件 LICENSE.txt 包含Kibana的許可證信息 NOTICE.txt 關于Kibana的版權和商標信息,以及第三方庫的版權聲明 package.json 定義了Kibana項目的元數據 README.txt 提供關于Kibana的基本信息和使用說明
(4)啟動并檢查
啟動Kibana:bin\kibana.bat 瀏覽器輸入http://localhost:5601/進入kibana表示啟動成功
(6)數據操作
進入http://localhost:5601/app/dev_tools#/console就可以對數據進行操作,左邊輸入命令執行在右面可以看到結果
(7)中文漢化
config\kibana.yml 配置文件中加上漢化配置
i18n.locale : "zh-CN"
3、Windows安裝head插件
(1)概述
head插件是ES的一個可視化管理插件,用來監視ES的狀態,并通過head客戶端和ES服務進行交互,比如創建映射、創建索引等。 head的項目地址:https://github.com/mobz/elasticsearch-head 。 head插件是一個基于node.js 的前端項目。
(2)安裝node.js
node 相關知識請參考 node 詳解:https://blog.csdn.net/liyou123456789/article/details/131240626
(3)下載并運行
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
(4)瀏覽器訪問
瀏覽器打開地址: http://localhost:9100/
(5)配置跨域
F12 打開瀏覽器調試工具發現報錯 Origin null is not allowed by Access-Control-Allow-Origin. 原因是:head插件作為客戶端要連接ES服務(localhost:9200),此時存在跨域問題,elasticsearch默認不允許跨域訪問。 解決方案:設置elasticsearch允許跨域訪問。在config/elasticsearch.yml 后面增加以下參數:
http.cors.enabled : true
http.cors.allow-origin : "*"
4、Windows安裝IK 分詞器
(1)概述
分詞(Tokenization)是文本處理中的一個關鍵步驟,特別是在自然語言處理(NLP)和搜索引擎技術中。分詞是將連續的文本字符串拆分成一個個獨立的、有意義的單元(通常是單詞或短語)的過程。這個過程對于文本的進一步分析和理解至關重要。 IK分詞器是專門為中文文本設計的分詞工具,尤其適用于搜索引擎和自然語言處理領域。 IK分詞器提供了兩種分詞算法:ik_smart
和ik_max_word
。 ik_smart
:進行粗粒度的分詞,盡量少的對文檔進行拆分,適合短語查詢。ik_max_word
:進行最細粒度的拆分,會將文本拆分成盡可能多的詞,適合術語查詢
(2)下載
下載地址:https://release.infinilabs.com/analysis-ik/stable/ 選擇和 es 一致的版本下載
(3)安裝
將下載的壓縮包解壓放到 es 的插件文件夾中,ik 分詞器文件夾重新命名 ik 重新啟動 ES,發現 IK 分詞器被加載了
(4)使用分詞器
# 請求
GET _analyze
{ "analyzer" : "ik_smart" , "text" : "道德制高點"
} #返回
{ "tokens" : [ { "token" : "道德" , "start_offset" : 0 , "end_offset" : 2 , "type" : "CN_WORD" , "position" : 0 } , { "token" : "制高點" , "start_offset" : 2 , "end_offset" : 5 , "type" : "CN_WORD" , "position" : 1 } ]
}
# 請求
GET _analyze
{ "analyzer" : "ik_max_word" , "text" : "道德制高點"
} # 返回
{ "tokens" : [ { "token" : "道德" , "start_offset" : 0 , "end_offset" : 2 , "type" : "CN_WORD" , "position" : 0 } , { "token" : "制高點" , "start_offset" : 2 , "end_offset" : 5 , "type" : "CN_WORD" , "position" : 1 } , { "token" : "高點" , "start_offset" : 3 , "end_offset" : 5 , "type" : "CN_WORD" , "position" : 2 } ]
}
(5)自定義分詞
在 ik 插件的 config 文件夾中添加自己的分詞文件 liyou.dic 在分詞文件中添加自己的分詞
(6)配置自定義分詞
在 ik 分詞器配置文件中配置自己的分詞文件 配置完成重啟 ES
(7)測試自定義分詞
# 請求
GET _analyze
{ "analyzer" : "ik_max_word" , "text" : "道德制高點"
} # 返回
{ "tokens" : [ { "token" : "道德" , "start_offset" : 0 , "end_offset" : 2 , "type" : "CN_WORD" , "position" : 0 } , { "token" : "德制" , "start_offset" : 1 , "end_offset" : 3 , "type" : "CN_WORD" , "position" : 1 } , { "token" : "制高點" , "start_offset" : 2 , "end_offset" : 5 , "type" : "CN_WORD" , "position" : 2 } , { "token" : "高點" , "start_offset" : 3 , "end_offset" : 5 , "type" : "CN_WORD" , "position" : 3 } ]
}