下载镜像
# 拉取镜像
docker pull elasticsearch:7.3.0
#启动镜像
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.3.0
mkdir /vdocker/es/config/ /vdocker/es/plugins
docker run -d --name es -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v /vdocker/es/config/:/usr/share/elasticsearch/config/ \
-v /vdocker/es/data:/usr/share/elasticsearch/data \
-v /vdocker/es/plugins:/usr/share/elasticsearch/plugins \
--restart=always elasticsearch:7.3.0
访问
浏览器输入192.168.2.179:9200,替换成自己的ip地址,检查防火墙
安装 IK 分词器插件
docker exec -it elasticsearch /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip
#如果下载不下来考入可以在外部浏览器打开地址下载下来解压到 /vdocker/es/plugins 此路径下,如果没有挂载则拷贝到容器plugins下面
#查看插件
elasticsearch-plugin list
安装完成后,需要进行一些配置才能使用IK分词器。
具体步骤如下:
打开Elasticsearch的配置文件(elasticsearch.yml),找到"plugin.mandatory"参数,将其设置为"analysis-ik"。
plugin.mandatory: analysis-ik
这将确保IK分词器在启动时被加载。
在Elasticsearch的配置文件(elasticsearch.yml)中添加以下配置,以启用IK分词器的中文分词功能:
analysis.analyzer.ik_max_word.type: 'ik_max_word'
analysis.analyzer.ik_max_word.use_smart: 'false'
analysis.analyzer.ik_max_word.use_狡猾: 'false'
analysis.analyzer.ik_max_word.use_ict: 'false'
analysis.analyzer.ik_max_word.with_tfidf: 'false'
analysis.analyzer.ik_max_word.dict_path: '[your_dict_path]'
其中,[your_dict_path]是您下载的词典文件的路径。您可以根据需要调整其他参数。
重启Elasticsearch和Kibana,以使配置生效。
完成以上步骤后,IK分词器将被正确配置并可用于对中文文本进行分词。
要测试IK插件是否安装成功,你可以按照以下步骤进行操作:
使用Kibana测试IK插件是否生效:
在Kibana的DevTools中执行以下请求:POST _analyze
bash{ "analyzer": "ik_max_word", "text": "我是中国人" }
如果分词结果为“我 是 中国人”,则表示IK插件已经生效。
在Elasticsearch中测试IK插件是否生效:
使用Elasticsearch的REST API或管理工具发送以下请求:
bashGET /_analyze { "analyzer": "ik_max_word", "text": "我是中国人" }
如果分词结果为“我 是 中国人”,则表示IK插件已经生效。
检查Elasticsearch的插件列表:
发送以下请求:GET /_nodes/plugins
在响应的列表中查找IK插件的相关信息,确保它已正确安装并加载。
验证是否能够使用IK插件进行分词:
发送以下请求:GET /_analyze?analyzer=ik_max_word
将“我是中国人”作为请求体中的文本。
如果分词结果为“我 是 中国人”,则表示IK插件已经能够正确进行分词。
如果以上步骤都显示IK插件已经成功安装并生效,那么就可以认为IK插件已经安装成功。
启动问题
1.设置max_map_count不能启动es会启动不起来
#查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
#重新设置max_map_count的值
sysctl -w vm.max_map_count=262144