做網(wǎng)站靠教育賺錢seo的基礎(chǔ)優(yōu)化
Docker安裝部署Elasticsearch+Kibana+IK分詞器
- Docker安裝部署elasticsearch
- 拉取鏡像
- 創(chuàng)建數(shù)據(jù)卷
- 創(chuàng)建網(wǎng)絡(luò)
- elasticsearch容器,啟動!
- Docker安裝部署Kibana
- 拉取鏡像
- Kibana容器,啟動!
- 安裝IK分詞器
- 安裝方式一:直接從github上下載
- 安裝方式二
- 詞典擴展與停用
Docker安裝部署elasticsearch
目前elastic官網(wǎng)推薦使用的兩個版本分別是:
- 8.10.2
- 7.17.13
我嘗試安裝8.x版本的,不過似乎由于虛擬機內(nèi)存大小的原因集群狀態(tài)總是轉(zhuǎn)為RED無法重置elastic賬戶的密碼,因此我最終選擇使用7.x版本的elasticsearch,8.x版本的默認(rèn)使用https來保證數(shù)據(jù)的安全性,感興趣的同學(xué)可以自行嘗試。
由于IK分詞器對于7.x版本最高只有7.17.6版本與之對應(yīng),所以下載7.17.6版本的elasticsearch
拉取鏡像
docker pull elasticsearch:7.17.6
創(chuàng)建數(shù)據(jù)卷
一般來說,我們不希望在elasticsearch容器停止時丟失elasticsearch中的文件,因此我們創(chuàng)建一個數(shù)據(jù)卷來關(guān)聯(lián)elasticsearch的data文件夾。在elasticsearch的使用中我們可能會安裝各種插件,因此創(chuàng)建了另一個數(shù)據(jù)卷來關(guān)聯(lián)elasticsearch的plugins文件夾
docker volume create es-data
docker volume create es-plugins
創(chuàng)建網(wǎng)絡(luò)
一般來說,我們在使用elasticsearch的時候會結(jié)合kibana一起使用,為了他們能夠正常關(guān)聯(lián),我們創(chuàng)建一個網(wǎng)絡(luò)來連接他們
docker net create es-net
elasticsearch容器,啟動!
ES_JAVA_OPTS是在設(shè)置堆大小,我修改這個環(huán)境變量主要是因為我虛擬機的內(nèi)存有限,硬件允許的可以忽略
因為我是單機啟動,所以將discovery.type設(shè)置為single-node
es-net為上一步我們創(chuàng)建的網(wǎng)絡(luò)名
docker run \
-d \
--name es \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
elasticsearch:7.17.6
訪問9200端口,如果瀏覽器中出現(xiàn)這串json就證明elasticsearch啟動成功了
{"name": "ab675a286e72","cluster_name": "docker-cluster","cluster_uuid": "ZdLfD65lQdKStAJi1yWMMQ","version": {"number": "7.17.13","build_flavor": "default","build_type": "docker","build_hash": "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13","build_date": "2023-08-31T17:33:19.958690787Z","build_snapshot": false,"lucene_version": "8.11.1","minimum_wire_compatibility_version": "6.8.0","minimum_index_compatibility_version": "6.0.0-beta1"},"tagline": "You Know, for Search"
}
Docker安裝部署Kibana
Kibana 是為 Elasticsearch設(shè)計的開源分析和可視化平臺
拉取鏡像
docker pull kibana:7.17.6
Kibana容器,啟動!
ELASTICSEARCH_HOSTS環(huán)境變量為elasticsearch服務(wù)的地址,其中http://es:9200中的es是我們運行elasticsearch容器時起的別名
es-net為我們在之前創(chuàng)建的網(wǎng)絡(luò)的名稱
docker run \
-d \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--name kibana \
--net es-net \
-p 5601:5601 \
kibana:7.17.6
Kibana的啟動比較慢,一段時間以后訪問5601端口如果能正常進入控制臺界面則證明Kibana部署成功
安裝IK分詞器
elasticsearch默認(rèn)的分詞器對于中文分詞不友好
標(biāo)準(zhǔn)分詞器分詞:
POST /_analyze
{"text": "elasticsearch 8.x版本太難啦!", "analyzer": "standard"
}
{"tokens" : [{"token" : "elasticsearch","start_offset" : 0,"end_offset" : 13,"type" : "<ALPHANUM>","position" : 0},{"token" : "8","start_offset" : 14,"end_offset" : 15,"type" : "<NUM>","position" : 1},{"token" : "x","start_offset" : 16,"end_offset" : 17,"type" : "<ALPHANUM>","position" : 2},{"token" : "版","start_offset" : 17,"end_offset" : 18,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "本","start_offset" : 18,"end_offset" : 19,"type" : "<IDEOGRAPHIC>","position" : 4},{"token" : "太","start_offset" : 19,"end_offset" : 20,"type" : "<IDEOGRAPHIC>","position" : 5},{"token" : "難","start_offset" : 20,"end_offset" : 21,"type" : "<IDEOGRAPHIC>","position" : 6},{"token" : "啦","start_offset" : 21,"end_offset" : 22,"type" : "<IDEOGRAPHIC>","position" : 7}]
}
可以看到默認(rèn)分詞器對英文分詞效果還不錯,但對于中文分詞不太友好。
我們再來實施ik分詞器
POST /_analyze
{"text": "elasticsearch 8.x版本太難啦!", "analyzer": "ik_smart"
}
{"tokens" : [{"token" : "elasticsearch","start_offset" : 0,"end_offset" : 13,"type" : "ENGLISH","position" : 0},{"token" : "8.x","start_offset" : 14,"end_offset" : 17,"type" : "LETTER","position" : 1},{"token" : "版本","start_offset" : 17,"end_offset" : 19,"type" : "CN_WORD","position" : 2},{"token" : "太難","start_offset" : 19,"end_offset" : 21,"type" : "CN_WORD","position" : 3},{"token" : "啦","start_offset" : 21,"end_offset" : 22,"type" : "CN_CHAR","position" : 4}]
}
可以看到ik分詞器對與中文分詞十分友好。接下來我們就安裝ik分詞器
安裝方式一:直接從github上下載
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.6/elasticsearch-analysis-ik-7.17.6.zip
安裝方式二
之前我們將es-plugins數(shù)據(jù)卷掛載到了es容器內(nèi)的plugins文件夾。
我們先使用魔法從github上下載
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.6/elasticsearch-analysis-ik-7.17.6.zip
然后將壓縮包解壓到數(shù)據(jù)卷對應(yīng)的位置,然后重啟elasticsearch容器即可。
詞典擴展與停用
- 創(chuàng)建ext.dit文件添加擴展詞
- 創(chuàng)建stopword.dic文件停用詞