部署单点elasticsearch

部署elasticsearch

创建网络

因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络

复制代码
docker network create es-net

拉取镜像

我们采用elasticsearch的7.12.1版本的镜像

复制代码
docker pull elasticsearch:7.12.1

运行

运行docker命令,部署单点es

复制代码
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":设置集群名称

  • -e "http.host=0.0.0.0":监听的地址,可以外网访问

  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小

  • -e "discovery.type=single-node":非集群模式

  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录

  • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录

  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录

  • --privileged:授予逻辑卷访问权

  • --network es-net :加入一个名为es-net的网络中

  • -p 9200:9200:端口映射配置

备注:需要给文件权限才能挂载 chmod -R 777 es

在浏览器中输入:43.139.59.28:9200 即可看到elasticsearch的响应结果

部署kibana

kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。

拉取镜像

复制代码
docker pull kibana:7.12.1

部署

复制代码
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的网络中,与elasticsearch在同一个网络中

  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch

  • -p 5601:5601:端口映射配置

访问

此时,在浏览器输入地址访问:Elastic即可看到结果

kibana中提供了一个DevTools界面

如下

安装IK分词器

安装ik插件

安装可能会很慢

复制代码
# 进入容器内部
docker exec -it es /bin/bash

# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

#退出
exit
#重启容器
docker restart es

安装成功

查看数据卷目录

安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:

复制代码
docker volume inspect es-plugins

扩展词词典

随着互联网的发展,"造词运动"也越发的频繁。出现了很多新的词语,在原有的词汇列表中并不存在。比如:"奥力给"等。所以我们的词汇也需要不断的更新,IK分词器提供了扩展词汇的功能

配置文件

在IKAnalyzer.cfg.xml配置文件内容添加

复制代码
# 进入挂载插件目录
cd /var/lib/docker/volumes/es-plugins/_data

// 编辑
vim  IKAnalyzer.cfg.xml

添加如下

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 *** 添加扩展词典-->
        <entry key="ext_dict">ext.dic</entry>
</properties>

保存

新建ext.dic

萌萌呆

奥力给

重启elasticsearch

复制代码
exit

docker restart es

查看

docker logs -f es

日志中已经成功加载ext.dic配置文件

停用词词典

在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。

IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

配置文件

IKAnalyzer.cfg.xml配置文件内容添加

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典-->
        <entry key="ext_dict">ext.dic</entry>
         <!--用户可以在这里配置自己的扩展停止词字典  *** 添加停用词词典-->
        <entry key="ext_stopwords">stopword.dic</entry>
</properties>

新建stopword.dic

在 stopword.dic 添加停用词

po

重启elasticsearch

复制代码
# 重启服务
docker restart es
docker restart kibana

# 查看 日志
docker logs -f es

日志中已经成功加载stopword.dic配置文件

查看

日志中已经成功加载stopword.dic配置文件

测试效果

相关推荐
王小王-1233 分钟前
基于 Hadoop 的二手房数据分析与可视化平台项目展示
大数据·hadoop·数据分析·大数据房价分析·二手房价格预测·hive房价数据分析
Elasticsearch9 分钟前
使用 LangChain Deep Agents 框架与 Elasticsearch 进行系统性研究
elasticsearch
FII工业富联科技服务22 分钟前
“可持续灯塔工厂”技术解密:AI+IoT如何落地端到端碳管理闭环
大数据·人工智能·物联网·ai·数据分析·自动化·制造
Leo.yuan33 分钟前
数据建模怎么做?一文解析8种经典数据建模方法
大数据·数学建模
master33633 分钟前
git仓库通过脚本完成多个远程仓库同步
大数据·git·elasticsearch
果丁智能38 分钟前
物联网智能锁落地实践:破解网约房、民宿身份核验与远程权限管控难题
大数据·人工智能·物联网·智能家居
搜移IT科技1 小时前
全球供应链重构凸显制造优势,非金属材料板块出口景气度与海外拓展策略
大数据
中科岩创1 小时前
某景区地下隧道结构健康监测工程项目
大数据·物联网·自动化
汉知宝科技1 小时前
企业知识产权管理的数据安全与部署策略:从双模式架构到精细化管控
大数据·运维