• docker 配置 elasticsearch、ik分词器


    ## 创建一个 network 方便其他服务连接,比如 Kibana
    # docker network create elasticSearchNetwork
    
    # docker run -d --name elasticsearch --net elasticSearchNetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.0
    
    ## 将本地配置文件映射到容器,方便日后修改配置
    # mkdir ~/Desktop/elasticsearch
    
    # docker cp 容器ID:/usr/share/elasticsearch/config ~/Desktop/elasticsearch
    # docker cp 容器ID:/usr/share/elasticsearch/data ~/Desktop/elasticsearch
    # docker cp 容器ID:/usr/share/elasticsearch/logs ~/Desktop/elasticsearch
    
    ## 关闭容器后重启即可,config、data、logs 都在宿主机,方便查看和修改配置
    ## 比如常用的 ik 分词器,下载对应版本,然后放在 plugins/ik 目录下即可使用
    docker run -d --name elasticsearch --net elasticSearchNetwork 
    -e "TZ=Asia/Shanghai" 
    -v ~/Desktop/elasticsearch/config:/usr/share/elasticsearch/config 
    -v ~/Desktop/elasticsearch/data:/usr/share/elasticsearch/data 
    -v ~/Desktop/elasticsearch/logs:/usr/share/elasticsearch/logs 
    -v ~/Desktop/elasticsearch/plugins:/usr/share/elasticsearch/plugins 
    -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.0
    
    ## http://localhost:9200
    

    附录:
    使用 Kibana 连接 elasticsearch

    ## 注意这里的 network 要使用刚刚 elasticsearch 创建的网络
    ## kibana 的版本也要和 elasticsearch 一致,防止出现奇怪的问题
    # docker run -d --name kibana --net elasticSearchNetwork -p 5601:5601 kibana:7.7.0
    
    ## 同样的,将 docker 中的配置文件拷贝到宿主机,方便配置
    # ~/Desktop/kibana
    # docker cp 090b7ba075fdffaffa636f61df9b188f624a94abc127573c23af5451e3d7de76:/usr/share/kibana/config ~/Desktop/kibana
    
    ## 修改配置文件 kibana.yml 添加一行,配置 Kibana 为中文
    i18n.locale: "zh-CN"
    
    ## 关闭容器后重启即可
    docker run -d --name kibana --net elasticSearchNetwork 
    -v ~/Desktop/kibana/config:/usr/share/kibana/config 
    -p 5601:5601 kibana:7.7.0
    
    ## http://localhost:5601
    

    配置 ik 分词器自定义词典

    在 ik 分词器的 config/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">custom/mydict.dic;custom/single_word_low_freq.dic</entry>
    	 <!--用户可以在这里配置自己的扩展停止词字典-->
    	<entry key="ext_stopwords">custom/ext_stopword.dic</entry>
     	<!--用户可以在这里配置远程扩展字典 -->
    	<entry key="remote_ext_dict">location</entry>
     	<!--用户可以在这里配置远程扩展停止词字典-->
    	<entry key="remote_ext_stopwords">http://xxx.com/xxx.dic</entry>
    </properties>
    

    其中 location 是指一个 url,比如 http://yoursite.com/customDict.txt,该请求只需满足以下两点即可完成分词热更新。
    1.该 http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。
    2.该 http 请求返回的内容格式是一行一个分词,换行符用 即可。

    可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里,放在 nginx 下,只要更新这个 txt 文档,ik 分词器就会读取新的分词规则,从而做到不停止 es 从而在线更新分词规则。

  • 相关阅读:
    hadoop mysql install (5)
    hadoop redis install (4)
    hadoop mongodb install(3)
    hadoop hbase install (2)
    水平交错效果显示图像
    实现推拉效果显示图片
    百叶窗效果显示图像
    以椭圆形显示图像
    图像的放大与缩小
    鼠标拖拽图像
  • 原文地址:https://www.cnblogs.com/manastudent/p/12919728.html
Copyright © 2020-2023  润新知