安装Docker
不设置启动会提示:
max virtual memory areas vm.max_map_count [65530] is too low, increase
to at least [262144]
问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;
cat /proc/sys/vm/max_map_count
sysctl -w vm.max_map_count=262144
#拉取镜像
docker pull elasticsearch:7.8.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.8.0
参数说明
--name表示镜像启动后的容器名称
-d: 后台运行容器,并返回容器ID;
-e: 指定容器内的环境变量
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
9200是后端发送请求restAPI使用的
9300是es在分布式集群下节点间的通信端口
elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 插件的安装在 Linux 和 Windows 没什么区别,安装之前确保当前系统已经安装 nodejs 即可。
docker pull mobz/elasticsearch-head:5
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
docker start elasticsearch-head
or
docker start 容器id #docker ps -a 可以查看容器id
尝试连接easticsearch会发现无法连接上(如下图)
由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
解决办法
docker exec -it elasticsearch /bin/bash (进不去使用容器id进入)
vi config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
exit
docker restart 容器id
docker cp 容器id:/usr/src/app/_site/vendor.js /usr/local/
1.6886行
contentType: "application/x-www-form-urlencoded"
改成
contentType: "application/json;charset=UTF-8"
2.7573行
var inspectData = s.contentType === "application/x-www-form-urlencoded"
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&
docker cp /usr/local/vendor.js 容器id:/usr/src/app/_site
docker restart 容器id
前言:
es本身也自带分词器,但是大多仅对英文比较友好,对于中文一般来说都是一个字一个词,不能实现我们想要的多字词分词,例如”北京天安门“,分词之后是“北”,“京”,“天”,“安”,“门“,所以我们需要手动安装”ik分词器,这款分词器相对于来说对中文分词是比较有好的“,下面进入步骤
这里采用离线安装:
下载分词器压缩包
各版本下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
ik分词器版本要和elasticsearch版本保持一致例如我用的是7.8.0
elasticsearch-analysis-ik-7.8.0 下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip
#1. 将压缩包移动到容器中
docker cp /tmp/elasticsearch-analysis-ik-7.8.0.zip 容器id:/usr/share/elasticsearch/plugins
#2. 进入容器
docker exec -it elasticsearch /bin/bash
#3. 创建目录
mkdir /usr/share/elasticsearch/plugins/ik
#4. 将文件压缩包移动到ik中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.8.0.zip /usr/share/elasticsearch/plugins/ik
#5. 进入目录
cd /usr/share/elasticsearch/plugins/ik
#6. 解压
unzip elasticsearch-analysis-ik-7.8.0.zip
#7. 删除压缩包
rm -rf elasticsearch-analysis-ik-7.8.0.zip
退出并重启
http://ip地址:9200/_analyze
{
"analyzer": "ik_max_word",
"text": "北京天安门"
}