前言
如果项目中所有的检索都采用 mysql 的 like 关键字进行检索,当mysql到达百万级别的时候就会很慢,这时候就需要额外的搜索引擎
1、docker拉取镜像
kibana为elasticsearch的图形界面
docker pull elasticsearch:7.4.2docker pull kibana:7.4.2
2、创建实例
2.1、创建本地文件夹
创建本地文件夹,用于docker实例镜像映射
mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/dataecho "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
2.2、修改权限
此处必须修改权限否则之后启动elasticsearch会报错
chmod -R 777 /mydata/elasticsearch/ 保证权限
2.3、运行实例
这里设置了java虚拟机的内存,否者直接使用的内存会干爆我们的虚拟机
第一个9200为我们访问的端口,第二个为集群访问的端口
运行elasticsearch
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-d elasticsearch:7.4.2
运行kibana
注意地址一定要改成自己的主机地址
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.144.201:9200 -p 5601:5601 -d kibana:7.4.2

3、测试环境
浏览器搜素指定地址查看是否能连接
kibana
http://192.168.144.201:5601/
elasticsearch
http://192.168.144.201:9200/
4、安装ki分词器
4.1、下载分词器
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.4.2
4.2、创建文件夹
mkdir ik

将压缩包压缩到ik目录下(解压后不要保留zip文件)
4.3、测试
进入容器中测试
1、进入容器
2、进入bin文件夹
3、查看插件
docker exec -it elasticsearch /bin/bashcd bin/elasticsearch-plugin list

4.4、使用kibana测试


POST _analyze{"analyzer":"ik_max_word","text":"我是中国人"}


第二种分词策略
POST _analyze{"analyzer":"ik_smart","text":"我是中国人"}
4.5、补充(自定义分词)
在nginx静态目录下创建自己的分词(在nginx的html目录下可已通过http协议直接访问)
修改配置
配置分词地址
<entry key="remote_ext_dict">http://192.168.144.201/es/fenci.txt</entry>

