Docker?部署分布式搜索引擎?Elastic?Search的詳細(xì)過程
?引言
本文參考黑馬 分布式Elastic search
Elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容
一、使用Elastic Search 的好處
用數(shù)據(jù)庫,也可以實(shí)現(xiàn)搜索的功能,為什么還需要搜索引擎呢?
數(shù)據(jù)庫(理論上來講,ES 也是數(shù)據(jù)庫,這里的數(shù)據(jù)庫,指的是關(guān)系型數(shù)據(jù)庫),首先是存儲,搜索只是順便提供的功能,
而搜索引擎,首先是搜索,但是不把數(shù)據(jù)存下來就搜不了,所以只好存一存。
術(shù)業(yè)有專攻,專攻搜索的搜索引擎,必然會提供更強(qiáng)大的搜索能力。
ElasticSearch 的 優(yōu)勢
- 分布式的文件存儲,每個字段都被索引且可用于搜索。
- 分布式的實(shí)時分析搜索引擎,海量數(shù)據(jù)下近實(shí)時秒級響應(yīng)。
- 簡單的restful api,天生的兼容多語言開發(fā)。
- 易擴(kuò)展,處理PB級結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。(pb指petabyte,1PB=1024TB)
二、部署ES
本案例通過云服務(wù)器 Docker 容器來進(jìn)行部署 單點(diǎn)ES
創(chuàng)建Docker 網(wǎng)絡(luò)
因為我們需要部署kibana容器,需要讓es和kibana容器互聯(lián)。這里先創(chuàng)建一個網(wǎng)絡(luò):
docker network create es-net
我們采用 ES 7.12.1 版本
安裝 ES 鏡像并運(yùn)行
docker run -d \ --name es \ -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 \ --network es-net \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.12.1
命令解釋:
-e "cluster.name=es-docker-cluster"
:設(shè)置集群名稱-e "http.host=0.0.0.0"
:監(jiān)聽的地址,可以外網(wǎng)訪問-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
:內(nèi)存大小-e "discovery.type=single-node"
:非集群模式-v es-data:/usr/share/elasticsearch/data
:掛載邏輯卷,綁定es的數(shù)據(jù)目錄-v es-logs:/usr/share/elasticsearch/logs
:掛載邏輯卷,綁定es的日志目錄-v es-plugins:/usr/share/elasticsearch/plugins
:掛載邏輯卷,綁定es的插件目錄--privileged
:授予邏輯卷訪問權(quán)--network es-net
:加入一個名為es-net的網(wǎng)絡(luò)中-p 9200:9200
:端口映射配置
云服務(wù)器進(jìn)行測試
我用的是騰訊云,所以需要 設(shè)置 騰訊云開放規(guī)則端口
輸入ip地址+端口號 進(jìn)行測試
http://ip地址:9200
?部署kibana
kibana是Elastic Stack 的技術(shù)棧,kibana為我們提供了一個可視化的界面,因此我們需要 部署kibana。
運(yùn)行Docker 命令,部署kibana
docker run -d \ --name kibana \ -e ELASTICSEARCH_HOSTS=http://es:9200 \ --network=es-net \ -p 5601:5601 \ kibana:7.12.1
--network es-net
:加入一個名為es-net的網(wǎng)絡(luò)中,與elasticsearch在同一個網(wǎng)絡(luò)中-e ELASTICSEARCH_HOSTS=http://es:9200"
:設(shè)置elasticsearch的地址,因為kibana已經(jīng)與elasticsearch在一個網(wǎng)絡(luò),因此可以用容器名直接訪問elasticsearch-p 5601:5601
:端口映射配置
kibana 啟動會比較慢,可以通過docker 命令來查看執(zhí)行日志
docker logs -f kibana
測試kibana
騰訊云服務(wù)器開放端口
進(jìn)行測試
DevTools
kibana中提供了一個DevTools界面:
這個界面中可以編寫DSL來操作elasticsearch。并且對DSL語句有自動補(bǔ)全功能。
測試DevTools
?部署分詞器
離線安裝分詞器
由于在線安裝比較慢,我就直接上傳之前下載好的分詞器到云服務(wù)器。
安裝分詞器需要知道 ElasticSearch 的 plugins 目錄
通過docker命令查看掛載目錄
docker volume inspect es-plugins
使用FileZilla上傳ik分詞器文件
上傳完成 重啟生效
# 重啟es docker restart es
進(jìn)行測試
IK分詞器包含兩種模式:
ik_smart
:最少切分ik_max_word
:最細(xì)切分
GET /_analyze { "analyzer": "ik_max_word", "text": "你好,我是Bug 終結(jié)者" }
完成測試,但是我想要分出的詞為Bug終結(jié)者,而不拆分,是一個詞,該如何實(shí)現(xiàn)呢?
三、詞典擴(kuò)展與停用
?擴(kuò)展詞典
隨著互聯(lián)網(wǎng)的發(fā)展,“造詞運(yùn)動”也越發(fā)的頻繁。出現(xiàn)了很多新的詞語,在原有的詞匯列表中并不存在。比如:“奧力給”,“傳智播客” 等。
所以我們的詞匯也需要不斷的更新,IK分詞器提供了擴(kuò)展詞匯的功能。
打開IK分詞器 config 目錄
在配置文件增加以下配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 擴(kuò)展配置</comment> <!--用戶可以在這里配置自己的擴(kuò)展字典 --> <entry key="ext_dict">ext.dic</entry> </properties>
新建 ext.dic 擴(kuò)展字典文件
Bug 終結(jié)者
字節(jié)跳動
抖音集團(tuán)
重啟 es
# 重啟服務(wù) docker restart es
進(jìn)行測試
?停用詞典
打開IK分詞器 config 目錄
圖片10
在配置文件增加以下配置
圖片13
新建 stopword.dic 擴(kuò)展字典文件
的 啊 嗯 嘿 中
重啟 es
# 重啟服務(wù) docker restart es docker restart kibana # 查看 日志 docker logs -f es
進(jìn)行測試
?小結(jié)
以上就是【Bug 終結(jié)者】對 Docker 部署 分布式搜索引擎 Elastic Search 的簡單介紹,ES搜索引擎無疑是最優(yōu)秀的分布式搜索引擎,使用它,可大大提高項目的靈活、高效性! 技術(shù)改變世界?。?!
到此這篇關(guān)于Docker 部署 分布式搜索引擎 Elastic Search的文章就介紹到這了,更多相關(guān)分布式搜索引擎 Elastic Search內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的詳細(xì)教程
Docker是一種流行的容器化平臺,可以簡化應(yīng)用程序的部署和管理,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05使用Docker快速搭建Airflow+MySQL詳細(xì)步驟
本文詳細(xì)介紹了如何使用Docker和Docker Compose安裝并配置Apache Airflow 2.9.3,步驟包括創(chuàng)建項目目錄、編寫docker-compose.yml文件、創(chuàng)建所需目錄結(jié)構(gòu)、啟動和管理Docker容器,以及如何訪問和配置Airflow Web UI,感興趣的朋友跟隨小編一起看看吧2024-09-09使用docker-compose連接到宿主機(jī)網(wǎng)絡(luò)
這篇文章主要介紹了使用docker-compose連接到宿主機(jī)網(wǎng)絡(luò),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段ip沖突導(dǎo)致無法訪問網(wǎng)絡(luò)的兩種解決方法
本文主要介紹了Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段沖突導(dǎo)致無法訪問網(wǎng)絡(luò)的兩種解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06