栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

五阶段--Elasticsearch简介/ Docker搭建ES集群/ IK中文分词器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

五阶段--Elasticsearch简介/ Docker搭建ES集群/ IK中文分词器

ElasticSearch从入门到精通,史上最全(持续更新,未完待续,每天一点点)_Null的博客-CSDN博客_elasticsearch入门

一 Elasticsearch 简介 1 概述

ElasticSearch:智能搜索,分布式的搜索引擎

是ELK的一个组成,是一个产品,而且是非常完善的产品,ELK代表的是:E就是ElasticSearch,L就是Logstach,K就是kibana

E:EalsticSearch 搜索和分析的功能

L:Logstach 搜集数据的功能,类似于flume(使用方法几乎跟flume一模一样),是日志收集系统

K:Kibana 数据可视化(分析),可以用图表的方式来去展示,文不如表,表不如图,是数据可视化平台


2 优点

1.分布式搜索的功能

2、数据高可用,集群高可用

3.API更简单

4.API更高级。

5.支持的语言很多

6.支持PB级别的数据

7.完成搜索的功能和分析功能

基于Lucene,隐藏了Lucene的复杂性,提供简单的API

ES的性能比Hbase高,咱们的竞价引擎最后还是要存到ES中的。

3 作用

1)全文检索:

类似 select * from product where product_name like '%牙膏%'

类似百度效果(电商搜索的效果)

2)结构化搜索:

类似 select * from product where product_id = '1'

3)数据分析

类似 select count (*) from product
 

4 搜索引擎原理
  • 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。
  • 搜索引擎原理就是建立反向索引。
  • Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。
  • Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。
  • Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。
  • Elasticsearch 一个典型应用就是 ELK 日志分析系统。
     
二 Docker搭建ES集群 1  关闭防火墙

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

# 关闭防火墙
systemctl stop firewalld.service

# 禁用防火墙
systemctl disable firewalld.service
2  安装Docker

我们使用 Docker 来运行 Elasticsearch,首先安装 Docker,参考下面笔记:

Docker笔记

3  下载 Elastic Search 镜像
docker pull elasticsearch:7.9.3
4  集群部署结构


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

 5  准备服务器
  • 克隆 docker-base: es 并 给虚拟机内存设置成2G或以上
  • 修改系统底层参数,粘贴键在编辑栏中,再 重启服务器: shutdown -r now
  • 必须修改系统参数 max_map_count,否则 Elasticsearch 无法启动:

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

echo 'vm.max_map_count=262144' >>/etc/sysctl.conf
  • 设置ip:
./ip-static
ip: 192.168.64.181


ifconfig
  •  上传文件到/root

  • 导入镜像
docker load -i es-img.gz

6  准备虚拟网络和挂载目录
# 创建虚拟网络
docker network create es-net

# node1 的挂载目录
mkdir -p -m 777 /var/lib/es/node1/plugins
mkdir -p -m 777 /var/lib/es/node1/data

# node2 的挂载目录
mkdir -p -m 777 /var/lib/es/node2/plugins
mkdir -p -m 777 /var/lib/es/node2/data

# node3 的挂载目录
mkdir -p -m 777 /var/lib/es/node3/plugins
mkdir -p -m 777 /var/lib/es/node3/data
 7  启动 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
  • 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
  • 环境变量说明:

参考 Networking | Elasticsearch Guide [7.15] | Elastic 

8  查看启动结果结果

http://192.168.64.181:9200

 

 http://192.168.64.181:9200/_cat/nodes

 

 9  chrome浏览器插件:elasticsearch-head

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

  1. 在 elasticsearch-head 项目仓库中下载 chrome 浏览器插件
  2. https://github.com/mobz/elasticsearch-head/raw/master/crx/es-head.crx
  3. 将文件后缀改为 zip
  4. 解压缩
  5. 在 chrome 浏览器中选择“更多工具”–“扩展程序”
  6. 在“扩展程序”中确认开启了“开发者模式”
  7. 点击“加载已解压的扩展程序”
  8. 选择前面解压的插件目录
  9. 在浏览器中点击 elasticsearch-head 插件打开 head 界面,并连接 http://192.168.64.181:9200/

 

 

 

三  IK中文分词器 1  安装 ik 分词器--相当于字典匹配中文词
  • 从 ik 分词器项目仓库中下载 ik 分词器安装包,下载的版本需要与 Elasticsearch 版本匹配:

https://github.com/medcl/elasticsearch-analysis-ik

  • 或者可以访问 gitee 镜像仓库:

https://gitee.com/mirrors/elasticsearch-analysis-ik

  • 下载 elasticsearch-analysis-ik-7.9.3.zip 复制到 /root/ 目录下,前面这一文件已经导入
     
2  在三个节点上安装 ik 分词器
cd ~/

# 复制 ik 分词器到三个 es 容器
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/

# 在 node1 中安装 ik 分词器
docker exec -it node1 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

# 在 node2 中安装 ik 分词器
docker exec -it node2 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

# 在 node3 中安装 ik 分词器
docker exec -it node3 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

# 重启三个 es 容器
docker restart node1 node2 node3

注意:执行安装分词器命令时,按一次enter键即可,多按会导致安装失败,需要重新安装

3  查看安装结果
  • 在浏览器中访问 http://192.168.64.181:9200/_cat/plugins

 

  • 如果插件不可用,可以卸载后重新安装:
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
4  ik分词测试

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

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

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

5  ik_max_word 分词测试

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

{
  "analyzer":"ik_max_word",
  "text":"中华人民共和国国歌"
}

 6  ik_smart 分词测试

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

{
  "analyzer":"ik_smart",
  "text":"中华人民共和国国歌"
}

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号