Elasticsearch Docker安装和中文分词插件

发布于 2024-03-03  217 次阅读


目标:安装Elasticsearch和Kibana并加入中文分词

安装

Elasticsearch

elasticsearch.yml

8.0本地访问需要关闭SSL,我这里全都设置成了False,如有需要自己设置为True

使用方法:

把该文件放在挂载的目录config/elasticsearch.yml

或者直接复制进Docker容器内/usr/share/elasticsearch/config/elasticsearch.yml


cluster.name: "docker-cluster"
network.host: 0.0.0.0

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically      
# generated to configure Elasticsearch security features on 28-02-2024 16:42:10
#
# --------------------------------------------------------------------------------

# Enable security features
xpack.security.enabled: false

xpack.security.enrollment.enabled: false

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: false
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------

Docker安装

挂载目录需要先把为目录设置权限,本地开发一般使用777就可以

一般"绑定挂载"第一次挂载都需要先要准备好/elasticsearch目录下的文件(建议使用挂载)

可以先运行一次没有挂载任何卷的es


# 设置权限
chmod -R 777 /elasticsearch


# 运行一次没有挂载卷的es
docker run -d --name elasticsearch elasticsearch:8.12.2


# 从这个运行中的容器复制文件到宿主机 容器名称:容器路径 宿主机路径
docker cp elasticsearch:/usr/share/elasticsearch/config /elasticsearch/config
docker cp elasticsearch:/usr/share/elasticsearch/data /elasticsearch/data
docker cp elasticsearch:/usr/share/elasticsearch/plugins /elasticsearch/plugins


# 停止并关闭
docker stop elasticsearch
docker rm elasticsearch


# -p 宿主机端口:容器端口
# -e ES_JAVA_OPTS="-Xms128m -Xmx256m" 设置ES服务的占用内存大小(开发时用作限制)
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx256m" \
-d elasticsearch:8.12.2



# 挂载目录方式 -v 宿主机路径:容器路径
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx256m" \
-v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elasticsearch/data:/usr/share/elasticsearch/data \
-v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:8.12.2

kibana

Docker安装

安装成功后访问http://127.0.0.1:5601即可


# ip是你本地的ip kibana版本需要和es一样
docker run -d --name kibana -e ELASTICSEARCH_HOSTS="http://192.168.50.75:9200" -p 5601:5601 kibana:8.12.2

IK中文分词

安装

下载:ik-Github

解压重命名为ik,放入到容器内路径/usr/share/elasticsearch/plugins

如果使用了挂载卷,放入/elasticsearch/plugins

更改权限


# 更改容器内文件夹权限.
docker exec -u root -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/plugins
chmod 777 -R ik


# 如果使用挂载只需要把宿主机的ik文件夹权限修改
chmod -R 777 /elasticsearch

重启即可使用

中文分词词库扩展


# 进入ik配置目录
cd /usr/share/elasticsearch/plugins/ik/config


# 这个是配置扩展的文件
IKAnalyzer.cfg.xml


# 创建我的词库配置文件夹
mkdir custom
cd custom
 

# 创建停用词配置
vim extra_stopwords.dic

# 写入想要禁用的词
的
是


# 创建我的词库
vim extra_dict.dic


# 写入需要增加的词
中国科技大学
中华牙膏

更改IKAnalyzer.cfg.xml

加入相对路径 custom/extra_dict.dic和custom/extra_stopwords.dic

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict">custom/extra_dict.dic</entry>
        <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords">custom/extra_stopwords.dic</entry>
        <!--用户可以在这里配置远程扩展字典 -->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
届ける言葉を今は育ててる
最后更新于 2024-03-09