• 部署单点elasticsearch


    部署elasticsearch

    创建网络

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

    docker network create es-net

    拉取镜像

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

    docker pull elasticsearch:7.12.1

    运行

    运行docker命令,部署单点es

    1. docker run -d \
    2. --name es \
    3. -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    4. -e "discovery.type=single-node" \
    5. -v es-data:/usr/share/elasticsearch/data \
    6. -v es-plugins:/usr/share/elasticsearch/plugins \
    7. --privileged \
    8. --network es-net \
    9. -p 9200:9200 \
    10. -p 9300:9300 \
    11. 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
    

    部署

    1. docker run -d \
    2. --name kibana \
    3. -e ELASTICSEARCH_HOSTS=http://es:9200 \
    4. --network=es-net \
    5. -p 5601:5601 \
    6. 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插件

    安装可能会很慢 

    1. # 进入容器内部
    2. docker exec -it es /bin/bash
    3. # 在线下载并安装
    4. ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
    5. #退出
    6. exit
    7. #重启容器
    8. docker restart es

    安装成功

    查看数据卷目录

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

    docker volume inspect es-plugins

    扩展词词典

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

    配置文件

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

    1. # 进入挂载插件目录
    2. cd /var/lib/docker/volumes/es-plugins/_data
    3. // 编辑
    4. vim IKAnalyzer.cfg.xml

    添加如下 

    1. "1.0" encoding="UTF-8"?>
    2. properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    3. <properties>
    4. <comment>IK Analyzer 扩展配置comment>
    5. <entry key="ext_dict">ext.dicentry>
    6. properties>

     保存

    新建ext.dic  

    萌萌呆
    奥力给

    重启elasticsearch  

    1. exit
    2. docker restart es

     查看

    docker logs -f es

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

    停用词词典

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

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

    配置文件

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

    1. "1.0" encoding="UTF-8"?>
    2. properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    3. <properties>
    4. <comment>IK Analyzer 扩展配置comment>
    5. <entry key="ext_dict">ext.dicentry>
    6. <entry key="ext_stopwords">stopword.dicentry>
    7. properties>

    新建stopword.dic  

    在 stopword.dic 添加停用词  

    po

     重启elasticsearch

    1. # 重启服务
    2. docker restart es
    3. docker restart kibana
    4. # 查看 日志
    5. docker logs -f es

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

    查看

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

     测试效果

  • 相关阅读:
    分布式锁的概念、应用场景、实现方式和优缺点对比
    【C++】C++11新特性
    游戏心理学Day26
    GEE:计算NDVI时间序列和谐波拟合曲线之间的残差时间序列
    JMeter—(三)如何做接口测试进阶篇
    【论文笔记】基于深度学习的移动机器人自主导航实验平台
    三、git的安装和配置
    论文解读(SimGCL)《Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation》
    HTML5+CSS3小实例:脉冲波纹催眠动画特效
    回溯框架总结
  • 原文地址:https://blog.csdn.net/qq_63431773/article/details/132582470