当前位置:   article > 正文

Elasticsearch搜索引擎安装使用及Java中使用_es_java_opts

es_java_opts

Elasticsearch(一)Docker搭建ES集群

关闭防火墙

后面我们要使用多个端口,为了避免繁琐的开放端口操作,我们关掉防火墙

  1. # 关闭防火墙
  2. systemctl stop firewalld.service
  3. # 禁用防火墙
  4. systemctl disable firewalld.service

安装Docker

我们使用 Docker 来运行 Elasticsearch,首先安装 Docker

下载 Elastic Search 镜像

docker pull elasticsearch:7.9.3

集群部署结构

 在一台服务器上,使用Docker部署三个ES容器组成的集群

准备虚拟网络和挂载目录

  1. # 创建虚拟网络
  2. docker network create es-net
  3. # node1 的挂载目录
  4. mkdir -p -m 777 /var/lib/es/node1/plugins
  5. mkdir -p -m 777 /var/lib/es/node1/data
  6. # node2 的挂载目录
  7. mkdir -p -m 777 /var/lib/es/node2/plugins
  8. mkdir -p -m 777 /var/lib/es/node2/data
  9. # node3 的挂载目录
  10. mkdir -p -m 777 /var/lib/es/node3/plugins
  11. mkdir -p -m 777 /var/lib/es/node3/data

设置 max_map_count

必须修改系统参数 max_map_count,否则 Elasticsearch 无法启动:

在 /etc/sysctl.conf 文件中添加 vm.max_map_count=262144

echo 'vm.max_map_count=262144' >>/etc/sysctl.conf

需要重启服务器!

确认参数配置:

cat /etc/sysctl.conf

启动 Elasticsearch 集群




node1:

  1. docker run -d \
  2. --name=node1 \
  3. --restart=always \
  4. --net es-net \
  5. -p 9200:9200 \
  6. -p 9300:9300 \
  7. -v /var/lib/es/node1/plugins:/usr/share/elasticsearch/plugins \
  8. -v /var/lib/es/node1/data:/usr/share/elasticsearch/data \
  9. -e node.name=node1 \
  10. -e node.master=true \
  11. -e network.host=node1 \
  12. -e discovery.seed_hosts=node1,node2,node3 \
  13. -e cluster.initial_master_nodes=node1 \
  14. -e cluster.name=es-cluster \
  15. -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  16. elasticsearch:7.9.3

环境变量说明:

环境变量    说明
node.name    节点在集群中的唯一名称
node.master    可已被选举为主节点
network.host    当前节点的地址
discovery.seed_hosts    集群中其他节点的地址列表
cluster.initial_master_nodes    候选的主节点地址列表
cluster.name    集群名
ES_JAVA_OPTS    java虚拟机参数
参考 Networking | Elasticsearch Guide [8.1] | Elastic


node2:

  1. docker run -d \
  2. --name=node2 \
  3. --restart=always \
  4. --net es-net \
  5. -p 9201:9200 \
  6. -p 9301:9300 \
  7. -v /var/lib/es/node2/plugins:/usr/share/elasticsearch/plugins \
  8. -v /var/lib/es/node2/data:/usr/share/elasticsearch/data \
  9. -e node.name=node2 \
  10. -e node.master=true \
  11. -e network.host=node2 \
  12. -e discovery.seed_hosts=node1,node2,node3 \
  13. -e cluster.initial_master_nodes=node1 \
  14. -e cluster.name=es-cluster \
  15. -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  16. elasticsearch:7.9.3


node3:

  1. docker run -d \
  2. --name=node3 \
  3. --restart=always \
  4. --net es-net \
  5. -p 9202:9200 \
  6. -p 9302:9300 \
  7. -v /var/lib/es/node3/plugins:/usr/share/elasticsearch/plugins \
  8. -v /var/lib/es/node3/data:/usr/share/elasticsearch/data \
  9. -e node.name=node3 \
  10. -e node.master=true \
  11. -e network.host=node3 \
  12. -e discovery.seed_hosts=node1,node2,node3 \
  13. -e cluster.initial_master_nodes=node1 \
  14. -e cluster.name=es-cluster \
  15. -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  16. elasticsearch:7.9.3

查看启动结果结果

http://192.168.64.181:9200

 
http://192.168.64.181:9200/_cat/nodes

 

chrome浏览器插件:elasticsearch-head

elasticsearch-head 项目提供了一个直观的界面,可以很方便地查看集群、分片、数据等等。elasticsearch-head最简单的安装方式是作为 chrome 浏览器插件进行安装。

在 elasticsearch-head 项目仓库中下载 chrome 浏览器插件
https://github.com/mobz/elasticsearch-head/raw/master/crx/es-head.crx

将文件后缀改为 zip

解压缩

在 chrome 浏览器中选择“更多工具”–“扩展程序”

在“扩展程序”中确认开启了“开发者模式”

点击“加载已解压的扩展程序”

选择前面解压的插件目录

在浏览器中点击 elasticsearch-head 插件打开 head 界面,并连接 http://192.168.64.181:9200/

Elasticsearch(二)IK中文分词器

安装 ik 分词

从 ik 分词器项目仓库中下载 ik 分词器安装包,下载的版本需要与 Elasticsearch 版本匹配
GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary.

或者可以访问 gitee 镜像仓库:
Gitee 极速下载/elasticsearch-analysis-ik

下载 elasticsearch-analysis-ik-7.9.3.zip 复制到 /root/ 目录下

在三个节点上安装 ik 分词器

  1. cd ~/
  2. # 复制 ik 分词器到三个 es 容器
  3. docker cp elasticsearch-analysis-ik-7.9.3.zip node1:/root/
  4. docker cp elasticsearch-analysis-ik-7.9.3.zip node2:/root/
  5. docker cp elasticsearch-analysis-ik-7.9.3.zip node3:/root/
  6. # 在 node1 中安装 ik 分词器
  7. docker exec -it node1 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip
  8. # 在 node2 中安装 ik 分词器
  9. docker exec -it node2 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip
  10. # 在 node3 中安装 ik 分词器
  11. docker exec -it node3 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip
  12. # 重启三个 es 容器
  13. docker restart node1 node2 node3

查看安装结果

在浏览器中访问 http://192.168.64.181:9200/_cat/plugins

 如果插件不可用,可以卸载后重新安装:

  1. docker exec -it node1 elasticsearch-plugin remove analysis-ik
  2. docker exec -it node2 elasticsearch-plugin remove analysis-ik
  3. docker exec -it node3 elasticsearch-plugin remove analysis-ik

ik分词测试

ik分词器提供两种分词器: ik_max_word 和 ik_smart

ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;

ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。
 

ik_max_word 分词测试

使用 head 执行下面测试:
向 http://192.168.64.181:9200/_analyze 路径提交 POST 请求,并在协议体中提交 Json 数据:

  1. {
  2. "analyzer":"ik_max_word",
  3. "text":"中华人民共和国国歌"
  4. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/205562
推荐阅读
相关标签
  

闽ICP备14008679号