首页 > 其他分享 >Elasticsearch概念及ELK安装

Elasticsearch概念及ELK安装

时间:2024-07-26 15:53:24浏览次数:15  
标签:ELK 词条 索引 文档 Elasticsearch 搜索 安装 es

1、Elasticsearch是什么

它是elastic技术栈中的一部分。完整的技术栈包括:

  • Elasticsearch:用于数据存储、计算和搜索

  • Logstash/Beats:用于数据收集

  • Kibana:用于数据可视化

整套技术栈被称为ELK,经常用来做日志收集、系统监控和状态分析等

2、Elasticearch的安装步骤

拉取镜像命令:docker pull elasticsearch:7.12.1

创建容器命令:

docker run -d \
  --name es \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "discovery.type=single-node" \
  -v es-data:/usr/share/elasticsearch/data \
  -v es-plugins:/usr/share/elasticsearch/plugins \
  --privileged \
  --network hm-net \
  -p 9200:9200 \
  -p 9300:9300 \
  elasticsearch:7.12.1

安装完成后,访问9200端口,即可看到响应的Elasticsearch服务的基本信息:

3、Kibana的安装步骤

拉取镜像命令:docker pull kibana:7.12.1

创建容器命令:

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=hm-net \
-p 5601:5601  \
kibana:7.12.1

安装完成后,直接访问5601端口,即可看到控制台页面:

 4、IK分词器的安装

ik下载地址:https://release.infinilabs.com/

在下面这个目录下载与你Elasticearch版本一致的zip,解压到无中文的目录下

使用命令查看之前安装的Elasticsearch容器的plugins数据卷目录

docker volume inspect es-plugins

 应该是这个目录/var/lib/docker/volumes/es-plugins/_data,将刚刚解压的ik文件夹上传到这个目录下

最后重启es容器

重启es容器:docker restart es

 测试

访问kibana的dev tools进行测试

 IK分词的ik_max_word:最细粒度切分

我们使用IK分词的智能语义切分

5、为什么要学习Elasticearch?

之所以学习Elasticearch是因为他有独特的搜索引擎,可以对海量数据达到最适配的内容查找

倒排索引

倒排索引中有两个非常重要的概念:

  • 文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息

  • 词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条,例如"今天天气还不错"这样一个简单的句子就可以分为今天,天气,天天,还 ,不错,错等等这样的词条。

每一条数据是一个文档,

创建表,每行数据包括词条、词条所在文档id、位置等信息

这些文档会有唯一标识,当使用分词器后,该文档就是这些词条的集合

6、Elasticearch的处理流程

流程描述:

1)用户输入条件"华为手机"进行搜索。

2)对用户输入条件分词,得到词条:华为手机

3)拿着词条在倒排索引中查找(由于词条有索引,查询效率很高),即可得到包含词条的文档id:1、2、3

4)拿着文档id到正向索引中查找具体文档即可(由于id也有索引,查询效率也很高)。

7、Elasticearch的基础概念

文档(Document)

在Elasticsearch中,文档是信息的基本单位,类似于关系数据库中的一行记录。每个文档由一个唯一的ID标识,并存储为JSON对象。文档可以包含多个字段,每个字段都有其数据类型和值。

例如,一个文档可能代表一个用户的个人信息,包括姓名、年龄、电子邮件地址等字段。

字段(Field)

字段是文档中的单个数据项,类似于关系数据库中的列。每个字段都有其名称和数据类型,例如字符串、整数、日期或地理坐标等。

文本字段(Text Field):用于全文搜索的非结构化文本数据。

关键词字段(Keyword Field):用于结构化内容,如精确匹配的标签或标识符。

数值字段(Numeric Field):用于存储数值数据,包括整数和浮点数。

日期字段(Date Field):用于存储日期和时间。、

索引(Index)

索引是文档的集合,类似于关系数据库中的数据库。一个索引有一个名称,并且可以包含多个文档。索引用于组织和搜索数据

  • 所有用户文档,就可以组织在一起,称为用户的索引;

  • 所有商品的文档,可以组织在一起,称为商品的索引;

  • 所有订单的文档,可以组织在一起,称为订单的索引;

因此,我们可以把索引当做是数据库中的表。

映射(Mapping)

数据库的表会有约束信息,用来定义表的结构、字段的名称、类型等信息。因此,索引库中就有映射(mapping),是索引中文档的字段约束信息,类似表的结构约束。

8、Elasticsearch与mysql的区别

mysql更适合精确查找,每条数据在数据库中都有唯一的存储位置,也就是唯一标识

Elasticearch更适合适配查找,根据内容对数据库里的数据进行匹配,查找相关的数据

最大的区别就是索引不同,所以适用场景也不相同,

8.1、索引对比

mysql使用的正向索引,Elasticearch使用的倒排索引

正向索引

优点:可以给多个字段创建索引

           根据索引字段搜索、排序速度非常快

缺点:根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描。

倒排索引

优点:根据词条搜索、模糊搜索时,速度非常快

缺点:只能给词条创建索引,而不是字段

           无法根据字段做排序

 8.2、属性对比

MYSQLElasticearch说明

Table

Index

索引(index),就是文档的集合,类似数据库的表(table)

Row

Document

文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式

Column

Field

字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)

Schema

Mapping

Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)

SQLDSL

DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

9、Elasticearch的适用场景

  • 全文搜索
  • 利用 Elasticsearch 的全文搜索能力,可以快速检索大量文本数据中的关键词或短语。这对于搜索引擎、电子商务平台的产品搜索、企业文档管理系统等应用非常适用。
  • 日志和数据分析
  • Elasticsearch 常用于处理和分析日志数据,它可以高效地存储、索引和搜索来自服务器、应用程序和网络设备的日志信息,帮助进行监控、故障排查和安全分析。
  • 实时数据监控
  • 由于其快速的索引和搜索能力,Elasticsearch 适合用于实时数据监控系统,比如金融交易监控、网络安全监控等,能够快速响应并分析实时数据流。
  • 内容推荐系统
  • Elasticsearch 可以用于构建推荐系统,通过分析用户行为和偏好,提供个性化的内容推荐,这在新闻聚合平台、在线市场和社交媒体等领域非常常见。
  • 地理信息系统(GIS)
  • Elasticsearch 提供了强大的地理空间搜索功能,可以用于处理和分析地理数据,适用于需要地理空间分析的应用程序,如地图服务、交通管理、位置跟踪等。

标签:ELK,词条,索引,文档,Elasticsearch,搜索,安装,es
From: https://blog.csdn.net/m0_67646306/article/details/140680148

相关文章

  • 新电脑如何设置 npm 源及查看源、安装 cnpm、pnpm 和 yarn 的详细教程
    当你获得一台新电脑,或需要在现有电脑上优化JavaScript和Node.js的开发环境时,正确配置npm是一步不可少的过程。本教程将详细指导你如何设置npm源,查看当前源,以及如何安装cnpm、pnpm和yarn。1.设置npm源npm(NodePackageManager)是Node.js的包管理器,通过......
  • Linux系统(在线)安装、卸载docker环境
    一安装1安装需要的软件包yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm22设置yum源sudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.re......
  • Centos安装部署安装Zabbix(redhat、rocky同样适用)
    Zabbix安装部署1、关闭防火墙和Selinuxsystemctldisable--nowfirewalld.service关闭防火墙并立即生效setenforce0关闭Selinuxsed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config永久关半selinux2、配置CentosYUM源和ZabbixYUM源rm-rf/etc/yum......
  • SQL Server 2008 下载 安装 配置
    将压缩包 SQLServer2008R2.rar压到当前目录下:点击蓝色字体下载压缩包提取码2rlf1,双击Setup:2,点击左侧安装点击全新安装或向现有安装添加功能:3,点击确定:4,点击输入产品密钥自动输入的点击下一步:5,勾选我接受许可条款点击下一步:6,点击安装:7,等待安装......
  • 【技巧】安装 win11 必须联网?无法跳过?
    安装 Win11 时自动检查更新或者让连接网络,没有提供取消按钮,之前有【我没有Internet连接】选项。在这个界面按Shift+F10打开命令提示符 输入OOBE\BYPASSNRO 按回车。  回车之后之后系统会重新启动,此时发现下一步的左侧出现了熟悉的【我没有Internet连接】选项 ......
  • Pip 在虚拟环境中全局安装包
    我不知所措,所以如果这是一个重复的问题,我深表歉意。我目前已通过命令设置了虚拟环境python3-mvenv.env并尝试通过python3-mpipinstall安装虚拟环境本地的软件包但是由于某种原因,该软件包被安装到我的全局软件包列表中。piplist激活我......
  • jdk的安装
     一、下载JDK首先,您需要访问Oracle官方网站(https://www.oracle.com/java/technologies/javase-downloads.html),根据您的操作系统选择对应的JDK版本进行下载。二、安装JDK双击下载好的安装文件,启动安装向导。通常会出现安装向导的欢迎界面,点击“下一步”。接......
  • 导出字体安装调试
    导出字体安装调试本教程由做字体网(www.zuoziti.com)友情提供!本教程是制作手写字体系列教程,建议从序言部分开始阅读学习!如需交流,请加QQ924268440本节视频教程在FontCreator中调试字体在FontCreator中调试字体很简单,直接按F5键即可。这里可以设置字体大小,我一般使用26......
  • ElasticSearch第1讲(4万字详解 Linux下安装、原生调用、API调用超全总结、Painless、IK
    ElasticSearch官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html非官方中文文档:https://learnku.com/docs/elasticsearch73/7.3极简概括:基于ApacheLucene构建开源的分布式搜索引擎。解决问题:MySQLlike中文全文搜索不走索引......
  • ubuntu安装findutils报错xargs: not found
    因为缺少find所以安装findutilsapt-getinstallfindutils报错说缺少xargs和find,但这俩也是属于findutils的,造成了循环依赖root@ubuntu:/home/mika#apt-getinstallfindutilsReadingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneTh......