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包文件夹的名字

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐