Elasticsearch概念及ELK安装

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 提供了强大的地理空间搜索功能,可以用于处理和分析地理数据,适用于需要地理空间分析的应用程序,如地图服务、交通管理、位置跟踪等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3267497.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

海康4G摄像头接入自定义程序

1.使用【萤石云视频】APP添加摄像头,在设置中关闭视频加密 2.打开萤石云,进入控制台 3.设备管理中可以看到添加的设备 4.添加一个应用,即可获取AppKey、Secret、AccessToken 5.根据文档中的说明获取播放地址,这里是我生成的播放…

单证不一致清关难题 | 国际贸易综合服务平台 | 箱讯科技

什么是单证一致? 单证一致出口方所提供的所有单据要严格符合进口方开证银行所开信用证的要求,或者说出口方制作和提供的所有与本项货物买卖有关的单据,与进口方申请开立的信用证对单据的要求完全吻合,没有矛盾。 添加图片注释&am…

本地搭建rtmp拉流

本地搭建rtmp拉流 可按照步骤来 关注公众号:城羽海 更多有趣实用教程 下载地址: 从微信公众号发送关键词 rtmp可获取下载地址 文章目录 本地搭建rtmp拉流 可按照步骤来 关注公众号:城羽海 更多有趣实用教程 拿到之后如图所下?二、配置obs文…

构建查询洞察 UI

本文字数:2631;估计阅读时间:7 分钟 作者:Bucky Schwarz 本文在公众号【ClickHouseInc】首发 我们最近发布了 Query Insights 的初步实现,为 ClickHouse Cloud 用户提供了一种便捷的方法来查看和解释查询日志。该功能对…

Python --NumPy库基础方法(1)

NumPy Numpy(Numerical Python) 是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算,Numpy支持向…

mysql语法介绍

MySQL 语法主要基于 SQL(Structured Query Language)标准,用于管理和操作关系型数据库。以下是一些基本的 MySQL 语句: 1.创建数据库: CREATE DATABASE database_name; 1.选择数据库: USE database_name;…

科研绘图系列:R语言组合堆积图(stacked barplot with multiple groups)

介绍 通常堆积图的X轴表示样本,样本可能会存在较多的分组信息,通过组合堆积图和样本标签分组信息,我们可以得到一张能展示更多信息的可发表图形。 加载R包 knitr::opts_chunk$set(warning = F, message = F) library(tidyverse) library(cowplot) library(patchwork)导入…

springcloud RocketMQ 客户端是怎么走到消费业务逻辑的 - debug step by step

springcloud RocketMQ ,一个mq消息发送后,客户端是怎么一步步拿到消息去消费的?我们要从代码层面探究这个问题。 找的流程图,有待考究。 以下我们开始debug: 拉取数据的线程: PullMessageService.java 本…

云盘高速视觉检测机,如何提高螺丝件的检测效率?

螺纹螺丝钉是一种常见的螺纹结构紧固件,通常由金属制成,具有螺旋状的螺纹结构。这种螺丝钉旨在通过旋入螺纹孔或材料中,实现可靠的固定连接。 螺纹螺丝钉具有螺旋状的螺纹结构,使其能够轻松旋入金属或其他硬质材料。主要用于金属…

UDP的报文结构及其注意事项

1. 概述 UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单的数据传输服务,不保证数据的可靠传输。在网络通信中,UDP通常用于一些对实时性要求较高、数据量较小、传输延迟较低的应用&#xff0c…

NLP基础知识2【各种大模型的注意力】

注意力 传统Attention存在的问题优化方向变体有哪些现在的主要变体集中在KVMulti-Query AttentionGrouped-query AttentionFlashAttention 传统Attention存在的问题 上下文约束速度慢,显存占用大(因为注意力考虑整体信息,所以每一个位置都要…

【大模型】基于LoRA微调Gemma大模型(1)

文章目录 一、LoRA工作原理1.1 基本原理1.2 实现步骤 二、LoRA 实现2.1 PEFT库:高效参数微调LoraConfig类:配置参数 2.2 TRL库SFTTrainer 类 三、代码实现3.1 核心代码3.2 完整代码 参考资料 大模型微调技术有很多,如P-Tuning、LoRA 等&#…

狗都能看懂的Actor-Critic强化学习算法讲解

Review Policy Gradient 上面的公式是Policy Gradient的更新函数,这个式子是指在 s t s_t st​时刻采取了 a t a_t at​,计算出对应发生的概率 p θ p_\theta pθ​,然后计算在采取了这个 a t a_t at​之后,所得到的reward有多大。…

table car vs. table cars:数据库命名用单数还是复数?

数据库的命名方式已经形成了许多共识,比如全部小写、下划线分隔、使用标准缩写等;其中就包括「使用单数名词」。 用户 jonr 在 reddit 网的程序员笑话(ProgrammerHumor)社区发了一篇帖子,调侃这些数据库命名方式的共识…

Hive3:基本介绍

一、概述 Apache Hive是一款分布式SQL计算的工具, 其主要功能是: 将SQL语句翻译成MapReduce程序运行 二、基本逻辑简介 主要由两大模块组成:元数据管理,SQL解析器 1、元数据管理 即:数据位置信息、数据结构信息、…

在jmeter中使用javascript脚本

工作上遇到一个压力测试的需求,需要测试几个考试相关的接口。其中有一个获取试题详情的接口,和一个提交答题信息的接口。后一个接口以上一接口的返回内容为参数,添加上用户的答案即可。jmeter提供了非常多的方式可以实现该需求,这…

Multi Range Read与Covering Index是如何优化回表的?

上篇文章末尾我们提出一个问题:有没有什么办法可以尽量避免回表或让回表的开销变小呢? 本篇文章围绕这个问题提出解决方案,一起来看看MySQL是如何优化的 回表 为什么会发生回表? 因为使用的索引并没有整条记录的所有信息&…

Vue3 Pinia/组件通信

2. pinaia 符合直觉的Vue.js状态管理库 集中式状态(数据)管理 官网 2.1 搭建pinaia环境 第一步:npm install pinia 第二步:操作src/main.ts import { createApp } from vue import App from ./App.vue/* 引入createPinia&…

案例分析:人工智能在航空航天领域的应用

作者主页: 知孤云出岫 目录 作者主页:案例分析:人工智能在航空航天领域的应用引言人工智能在航空航天中的主要应用案例分析案例一:AI优化航天器设计案例二:AI辅助飞行安全——预测维护案例三:AI自动驾驶系统案例四:A…

关键词查找【Boyer-Moore 算法】

1、【Boyer-Moore 算法】 【算法】哪种算法有分数复杂度?- BoyerMoore字符串匹配_哔哩哔哩_bilibili BM算法的精华就在于BM(text, pattern),也就是BM算法当不匹配的时候一次性可以跳过不止一个字符。即它不需要对被搜索的字符串中的字符进行逐一比较,而…