拉取镜像
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、瞎子啊安装包后解压
# 下载地址 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下编译后再将压缩文件上传到服务器
# 下载 https://github.com/medcl/elasticsearch-analysis-ik # 切换分支 现在没有7.4.0分支,可搜索7.4.0压缩包 git checkout *** # 打包 mvn package
服务器端
#切换目录 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



