1. 安装Elasticsearch
1.1 安装
docker pull elasticsearch:7.9.3
1.2 创建虚拟网络和挂载目录
docker network create es-net
mkdir -p -m 777 /var/lib/es/node1/plugins
mkdir -p -m 777 /var/lib/es/node1/data
mkdir -p -m 777 /var/lib/es/node2/plugins
mkdir -p -m 777 /var/lib/es/node2/data
mkdir -p -m 777 /var/lib/es/node3/plugins
mkdir -p -m 777 /var/lib/es/node3/data
1.3 修改系统参数 max_map_count
需要修改系统参数才能启动ES, 在/etc/sysctl.conf配置文件中添加vm.max_map_count=262144 也可通过vim添加
echo 'vm.max_map_count=262144' >>/etc/sysctl.conf
重启服务器即可(重启Linux系统)
1.4 启动Elasticsearch集群
node1
docker run -d \
--name=node1 \
--restart=always \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-v /var/lib/es/node1/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node1/data:/usr/share/elasticsearch/data \
-e node.name=node1 \
-e node.master=true \
-e network.host=node1 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
参数说明
属性 | 说明 |
---|
node.name | 节点在集群中的唯一名称 | node.master | 可以被选举为主节点 | network.host | 当前节点地址 | discovery.seed_hosts | 集群中其他节点的地址列表 | cluster.initial_master_nodes | 候选的主节点地址列表 | cluster.name | 集群名 | ES_JAVA_OPTS | java虚拟机参数 |
node2
docker run -d \
--name=node2 \
--restart=always \
--net es-net \
-p 9201:9200 \
-p 9301:9300 \
-v /var/lib/es/node2/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node2/data:/usr/share/elasticsearch/data \
-e node.name=node2 \
-e node.master=true \
-e network.host=node2 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
node3
docker run -d \
--name=node3 \
--restart=always \
--net es-net \
-p 9202:9200 \
-p 9302:9300 \
-v /var/lib/es/node3/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node3/data:/usr/share/elasticsearch/data \
-e node.name=node3 \
-e node.master=true \
-e network.host=node3 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
查看集群启动 http://192.168.126.130:9200 http://192.168.126.130:9200/_cat/nodes
1.5 安装chrome浏览器插件:elasticsearch-head
elasticsearch-head 项目提供了一个直观的界面,可以很方便地查看集群、分片、数据等等。elasticsearch-head最简单的安装方式是作为 chrome 浏览器插件进行安装。 下载地址:https://github.com/mobz/elasticsearch-head/raw/master/crx/es-head.crx 使用方式搜百度
效果:
2. 安装IK分词器
2.1 下载IK分词器
下载地址: https://github.com/medcl/elasticsearch-analysis-ik ???????或者: https://gitee.com/mirrors/elasticsearch-analysis-ik 注意: IK分词器版本要与ES版本一致(这里使用的7.9.3)
下载 elasticsearch-analysis-ik-7.9.3.zip 上传到Linux系统的/root/目录下
2.2 安装IK分词器
docker cp elasticsearch-analysis-ik-7.9.3.zip node1:/root/
docker cp elasticsearch-analysis-ik-7.9.3.zip node2:/root/
docker cp elasticsearch-analysis-ik-7.9.3.zip node3:/root/
docker exec -it node1 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip
docker exec -it node2 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip
docker exec -it node3 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip
docker restart node1 node2 node3
查看分词器安装结果 http://192.168.126.130:9200/_cat/plugins
2.3 如果分词器不可用
如果插件不可用,可以卸载后重新安装:
docker exec -it node1 elasticsearch-plugin remove analysis-ik
docker exec -it node2 elasticsearch-plugin remove analysis-ik
docker exec -it node3 elasticsearch-plugin remove analysis-ik
2.4 分词测试
ik分词器提供两种分词器:
ik_max_word 分词测试
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华国歌”分成"中华", “华国”, “国歌”,穷举所有可能 适合 Term Query 查询
使用浏览器插件, 通过复杂查询向 http://192.168.126.130:9200/_analyze 地址发送POST请求
{
"analyzer":"ik_max_word",
"text":"中华人民"
}
ik_smart 分词测试
ik_smart: 会做最粗粒度的拆分, 比如会将"中华国歌"分成如下"中华", “国歌” 适合 Phrase 查询
使用浏览器插件, 通过复杂查询向 http://192.168.126.130:9200/_analyze 地址发送POST请求
{
"analyzer":"ik_smart",
"text":"中华国歌"
}
|