docker安装
ES安装
拉取镜像
# 版本已比较老 可使用较新的7.17.0 或8.0.0
docker pull elasticsearch:7.4.0
配置分词器 ik/pinyin
#切换目录
mkdir /usr/share/elasticsearch/plugins
cd /usr/share/elasticsearch/plugins
#新建目录
mkdir analysis-ik
cd analysis-ik
#root根目录中拷贝文件
mv elasticsearch-analysis-ik-7.4.0.zip /usr/share/elasticsearch/plugins/analysis-ik
#解压文件
cd /usr/share/elasticsearch/plugins/analysis-ik
unzip elasticsearch-analysis-ik-7.4.0.zip
创建容器
docker run -id --name elasticsearch -d -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" elasticsearch:7.4.0
设置开机启动
docker update --restart=always elasticsearch
安装Kibana
docker pull kibana:7.4.0
docker run -d -p 5601:5601 --link elasticsearch -e "ELASTICSEARCH_URL=http://192.168.200.130:9200" kibana:7.4.0
安装elasticsearch-head
docker pull mobz/elasticsearch-head:5
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
- 解决跨域无法访问问题
进入elasticsearch容器内部,修改配置文件elasticsearch.yml
docker exec -it elasticsearch /bin/bash
cd ./config
vim elasticsearch.yml
在elasticsearch.yml中添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
重启 elasticsearch容器
docker restart elasticsearch
- 解决es高版本不显示数据问题
进入 es-head 容器里面的 _site目录修改配置文件vendor.js
docker exec -it wonderful_gould /bin/bash
## 镜像中未安装vi/vim
apt-get update
apt-get install vim
cd /usr/src/app/_site
vim vendor.js
需要修改两个地方
6886行:
contentType: "application/x-www-form-urlencoded"
// 改成
contentType: "application/json;charset=UTF-8"
7573行:
var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
// 改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&
Linux 安装
ES安装
1、下载安装包后解压
# 下载地址
# 版本已比较老 可使用较新的7.17.0 或8.0.0
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.4.0-linux-x86_64.tar.gz.sha512
# certutil -hashfile elasticsearch-7.4.0-linux-x86_64.tar.gz.sha512 sha256
# 将elasticsearch-7.4.0-linux-x86_64.tar.gz解压到opt文件夹下. -C 大写
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt
2、创建普通用户,可使用已存在用户。
因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:
useradd esuser # 新增esuser用户
passwd esuser # 为esuser用户设置密码
3、为新用户授权
chown -R esuser:esuser /opt/elasticsearch-7.4.0 #文件夹所有者
4、修改elasticsearch.yml文件
vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
network.host:设置为0.0.0.0允许外网访问
http.port:Elasticsearch的http访问端口
cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master
5、修改配置文件
新创建的用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加类似如下内容
# 切换到root用户
su root
#1. ===最大可创建文件数太小=======
vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
esuser soft nofile 65536
esuser hard nofile 65536
# =====
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
esuser soft nofile 65536
esuser hard nofile 65536
* hard nproc 4096
# 注:* 代表Linux所有用户名称
#2. ===最大虚拟内存太小=======
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
# 重新加载,输入下面命令:
sysctl -p
6、启动elasticsearch
su esuser # 切换到alaric用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动
7、访问elasticsearch
访问前开放确保开放9200端口
访问http:/ip:9200,出现以下信息则启动成功
{
"name" : "7319e4d6c114",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "kj373c7FRiqqy9ShWydysg",
"version" : {
"number" : "7.4.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
"build_date" : "2019-09-27T08:36:48.569419Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
重点几个关注下即可:
number" : "7.4.0" 表示elasticsearch版本
lucene_version" : "8.2.0" 表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch
分词器安装
- Ik分词器安装
建议windows下编译后再将压缩文件上传到服务器
# 下载
git clone https://github.com/medcl/elasticsearch-analysis-ik
# 切换分支
# 这时候 git 可能会提示你当前处于一个“detached HEAD" 状态。(detached 分离的)。因为 tag 相当于是一个快照,是不能更改它的代码的。
# 切换后可打开查看pom文件依赖的elasticsearch版本号确认
git checkout v7.4.0
# 打包
mvn package
也可以直接下载编译好的压缩吧(对应版本不全)
https://github.com/medcl/elasticsearch-analysis-ik/releases
服务器端
#切换目录
cd /opt/elasticsearch-7.4.0/plugins/
#新建目录
mkdir analysis-ik
cd analysis-ik
#package执行完毕后会在当前目录下生成target/releases目录,将其中的elasticsearch-analysis-ik-7.4.0.zip上传到服务器
#执行解压
unzip /opt/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip
将elasticsearch-analysis-ik-7.4.0目录下的config目录中的所有文件上传到服务器到elasticsearch的config目录
cd /opt/elasticsearch-7.4.0/config
重启elasticsearch
测试
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "乒乓球明年总冠军"
}
- 拼音分词器同理
git clone https://github.com/medcl/elasticsearch-analysis-pinyin
git checkout 7.4.0
cd /opt/elasticsearch-7.4.0/plugins/
# 新建目录
mkdir pinyin
……同理
测试
GET /_analyze
{
"analyzer": "pinyin",
"text": "pingpangqiumingnianzongguanjun"
}
注意:分词器的名称“pinyin”为放置分词器jar包文件夹的名字