docker安装elasticsearch
1. 创建映射目录
mkdir -p /Users/year12/dockerMsg/elasticsearch/config
mkdir -p /Users/year12/dockerMsg/elasticsearch/data
mkdir -p /Users/year12/dockerMsg/elasticsearch/plugins
vim elasticsearch.yml 输入: http.host: 0.0.0.0
sudo chmod -R 770 /Users/year12/dockerMsg/elasticsearch
2. 创建网络
docker network create es-net
3. 部署运行单点es
docker run -d \ --name es \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ -e "discovery.type=single-node" \ -v /Users/year12/dockerMsg/elasticsearch/data:/usr/share/elasticsearch/data \ -v /Users/year12/dockerMsg/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -v /Users/year12/dockerMsg/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ --privileged \ --network es-net \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.16.2
命令解释
- `-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`:端口映射配置
4. 部署kibana
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`:端口映射配置
5. 安装IK分词器
分词器的作用是什么?
- 创建倒排索引时对文档分词
- 用户搜索时,对输入的内容分词
IK分词器有几种模式?
- ik_smart:智能切分,粗粒度
- ik_max_word:最细切分,细粒度
IK分词器如何拓展词条?如何停用词条?
- 利用config目录的IkAnalyzer.cfg.xml文件添加拓展词典和停用词典
- 在词典中添加拓展词条或者停用词条
cd /Users/year12/dockerMsg/elasticsearch/plugins
mkdir ik
cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.16.2/elasticsearch-analysis-ik-7.16.2.zip
unzip elasticsearch-analysis-ik-7.16.2.zip
# 重启es
docker restart es
6. 测试IK分词器
IK分词器包含两种模式:
* `ik_smart`:最少切分
* `ik_max_word`:最细切分
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "北京新增63例本土感染者 社会面7例"
}
7. 扩展词词典&扩展停止词词典
vim /Users/year12/dockerMsg/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml
修改完重启es
ext.dic 需要自己新建
extra_stopword.dic config目录本身存在