elasticsearch 概述

【大模型应用开发-ES】(一)ElasticSearch概述 Elasticsearch是一个开源的分布式全文搜索引擎,也是Elastic Stack(ELK)技术的核心组件。它能够高效地存储和检索PB级别的非结构化文本数据,提供近实时的搜索分析能力。相比传统关系型数据库在全文检索上的局限性(如索引维护困难、性能低下),Elasticsearch专为解决海量文本搜索需求设计,通过建立词条索引实现快速查询,适用于日志分析、网站搜索等场景。其分布式架构支持水平扩展至上百台服务器,满足企业对高性能、高相关性搜索的需求,特别适合非结构化数据处理和交互式查询应用。 阅读详情

初识elasticsearch

了解ES

elasticsearch的作用

elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容

例如:

  • 在GitHub搜索代码

    在这里插入图片描述

  • 在电商网站搜索商品
    在这里插入图片描述

ELK技术栈

elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域:

在这里插入图片描述

而elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。

在这里插入图片描述

elasticsearch和lucene

elasticsearch底层是基于lucene来实现的。

Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:https://lucene.apache.org/ 。

在这里插入图片描述

elasticsearch的发展历史:

  • 2004年Shay Banon基于Lucene开发了Compass
  • 2010年Shay Banon 重写了Compass,取名为Elasticsearch。

在这里插入图片描述

倒排索引

倒排索引的概念是基于MySQL这样的正向索引而言的.所以在介绍倒排索引之前,我们先回顾正向索引

正向索引

那么什么是正向索引呢?例如给下表(tb_goods)中的id创建索引:
在这里插入图片描述

如果是根据id查询,那么直接走索引,查询速度非常快。

但如果是基于title做模糊查询,只能是逐行扫描数据,流程如下:

  1. 用户搜索数据,条件是title符合"%手机%"

  2. 逐行获取数据,比如id为1的数据

  3. 判断数据中的title是否符合用户搜索条件

  4. 如果符合则放入结果集,不符合则丢弃。回到步骤1

因此在进行模糊查询大量数据时,便会效率低下,造成性能瓶颈,所以为了解决模糊查询效率低的问题,倒排索引便应运而生.

倒排索引

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

  • 文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息
  • 词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这样的几个词条

创建倒排索引是对正向索引的一种特殊处理,流程如下:

  • 将每一个文档的数据利用算法分词,得到一个个词条
  • 创建表,每行数据包括词条、词条所在文档id、位置等信息
  • 因为词条唯一性,可以给词条创建索引,例如hash表结构索引

如图:

在这里插入图片描述

倒排索引的搜索流程如下(以搜索"华为手机"为例):

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

2)对用户输入内容分词,得到词条:华为、手机。

3)拿着词条在倒排索引中查找,可以得到包含词条的文档id:1、2、3。

4)拿着文档id到正向索引中查找具体文档。

如图:

在这里插入图片描述

虽然要先查询倒排索引,再查询倒排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快!无需全表扫描。

正向和倒排

那么为什么一个叫做正向索引,一个叫做倒排索引呢?

  • 正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。

  • 而倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程。

对比优缺点:

正向索引:

  • 优点:
    • 可以给多个字段创建索引
    • 根据索引字段搜索、排序速度非常快
  • 缺点:
    • 根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描。

倒排索引:

  • 优点:
    • 根据词条搜索、模糊搜索时,速度非常快
  • 缺点:
    • 只能给词条创建索引,而不是字段
    • 无法根据字段做排序

es概念

elasticsearch中有很多独有的概念,与mysql中略有差别,但也有相似之处。

文档和字段

elasticsearch是面向**文档(Document)**存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中:

而Json文档中往往包含很多的字段(Field),类似于数据库中的列。

索引和映射

索引(Index),就是相同类型的文档的集合。

例如:

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

在这里插入图片描述

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

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

mysql与elasticsearch

我们统一的把mysql与elasticsearch的概念做一下对比:

MySQLElasticsearch说明
TableIndex索引(index),就是文档的集合,类似数据库的表(table)
RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)
SQLDSLDSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

是不是说,我们学习了elasticsearch就不再需要mysql了呢?

并不是如此,两者各自有自己的擅长支出:

  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性

  • Elasticsearch:擅长海量数据的搜索、分析、计算

因此在企业中,往往是两者结合使用:

  • 对安全性要求较高的写操作,使用mysql实现
  • 对查询性能要求较高的搜索需求,使用elasticsearch实现
  • 两者再基于某种方式,实现数据的同步,保证一致性

安装es、kibana,分词器

安装

可以参考这篇文章
https://blog.youkuaiyun.com/studycodeday/article/details/134451772

整理 钢琴 约翰·汤普森现代钢琴(大汤) 大汤 阅读详情

相关推荐

变焦跟踪理论基础(如何在变焦过程中保持清晰)

如何在整个变焦过程中一直保持图像的清晰度或焦点是变焦跟踪的主要挑战。 当用户在缩放跟踪的情况下改变缩放时,设备保持对焦。 然而,在没有变焦跟踪的情况下,图像变得失焦,图像在变焦跟踪后由于自动对焦(AF)算法才最终对焦。...................................................

ChenYX的博客 20万+

Elasticsearch(ES)概述

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。Elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。Elasticsearch是。

m0_71484388的博客 1690

【探秘】二维异形件重叠移除算法:从度量到消除的实战解析

本文深入解析二维异形件重叠移除算法的核心技术与实战应用,涵盖重叠度量、零件扰动策略及消除方法。通过NFP(临界多边形)技术、空间分区加速等优化手段,有效解决异形件排版中的重叠问题,提升材料利用率和计算效率。适合制造业、CAD软件开发者及算法工程师参考。

weixin_28698059的博客 253

ElasticSearch学习之一【ES概述】

Elasticsearch是一款非常强大的开源分布式搜索引擎,并且结合 Kibana、Logstash、 Beats 丰富的生态组件,也被广泛运用在大数据实时分析场景中,其中包括日志分析、指标监控、信息安全等领域。 其高性能、容易使用、容易扩展的特性,被大量的互联网公司使用,其中包括小米、饿了么、滴滴出行、携程旅游,同时国内公有云企业阿里云与 Elastic 合作推出了云服务产品“阿里云Elast...

weixin_44761910的博客 367

手把手教你用Cadence仿真12bit SAR ADC:从电路图到FFT频谱分析(含Simc 18mmrf工艺文件)

本文详细介绍了使用Cadence仿真12bit SAR ADC的全流程,包括电路搭建、仿真环境配置、瞬态仿真优化及FFT频谱分析。基于Simc 18mmrf工艺文件,提供从电路图到性能验证的实战指南,特别分享工程实践中的排错技巧和优化策略,帮助工程师高效完成ADC设计验证。

weixin_30832405的博客 405

LabVIEW通过ActiveX控件实现与三菱FX5U PLC的高效数据交互

本文详细介绍了如何利用LabVIEW的ActiveX控件,通过三菱官方MX Component工具包实现与FX5U PLC的高效数据交互。文章从环境配置、控件插入到实战代码解析,系统讲解了连接建立、数据读写及资源释放的全流程,并提供了关键的避坑指南,帮助工程师快速构建稳定可靠的上位机通讯系统。

weixin_29197051的博客 375

ES(Elasticsearch)概述及基本使用方法

ES(Elasticsearch)概述及基本使用方法

weixin_68138130的博客 6621

【数据集处理】中国地面气候资料日值数据集(V3.0)(含MATLAB全代码)

简介数据集数据处理

WW、forever的博客 1万+

Es搜索引擎概述和语句案例

个人学习ES总结,仅当参考

yhyh1233的博客 5691

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2205

081、LLC谐振变换器的短路特性与保护

本文深入分析了LLC谐振变换器在短路工况下的特性与保护策略。作者通过实际案例指出,LLC在输出短路时会出现谐振电流失控、ZVS条件丧失等危险现象,导致MOS管炸毁。文章详细阐述了短路保护的三大难点:响应速度、频率与电流的耦合、重启策略,并提出了硬件级快速保护、频率快速拉升、打嗝模式等实用解决方案。作者分享了关键参数设计经验,包括电流检测阈值设置、最高频率限制和保护响应时间控制,并通过实测波形验证了保护效果。最后总结出五点重要经验,强调硬件保护的必要性和系统设计的注意事项,为LLC变换器的短路保护设计提供了有

Jack010169的博客 76

ElasticSearch(ES)——概述/API

文章目录一、ElasticSearch基础1.1 简介1.2 使用场景1.3 ES与其他数据存储进行比较1.4 ES的特点1.5 Lucene、Nutch、ElasticSearch关系二、基本概念ES概念和MySQL关系对比三、安装ES3.1 解压、改名3.2 修改配置文件3.3 教学环境启动优化分发3.4 修改hadoop163、hadoop164的节点名3.5 单台启动测试,解决问题四、安装kibana4.1 解压、改名4.2 修改配置文件4.3 启动测试五

平平无奇小码农~ 1401

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

es概述

weixin_40619833的博客 180

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ElasticSearch全文搜索引擎 -Spring Boot操作ES(SpringData概述、Spring Data Elasticsearch、基本操作、ElasticSearch操作文档)

目录 1. Spring Data概述 2. Spring Data Elasticsearch 3. 实现基本操作 4. ElasticSearch操作文档 1 Spring Data概述 Spring Data是spring提供的一套连接各种第三方数据源的框架集,它支持连接很多第三方数据源,例如: 数据库 redis ElasticSearch MongoDB等 包括数据库在内,很多第三方数据都可以使用SpringData操作,非常方便。 2 Spring Data Elasticsearch 上

Lifelong learning 7213

ElasticSearch概述及Window和Linux环境下安装

ES(Elasticsearch)是一个基于开放源代码的分布式搜索引擎,用于快速和灵活地搜索和分析大量数据。它是构建在Apache Lucene之上的,通过提供一个简单而强大的RESTful API来实现全文搜索、结构化搜索、分析和数据可视化的功能。

小孔靠得住的博客 2734

ElasticSearch概述+SpringBoot 集成ES

开源的、高扩展的、分布式全文检索引擎【站内搜索】

weixin_63541561的博客 633

ElasticSearch全文搜索引擎概述、使用Kibana和JAVA的简单操作

狭义的理解主要针对文本数据的搜索。数据可分为“结构化”数据(关系数据库表形式管理的数据),半结构化数据(XML文档、JSON文档),和非结构化数据(WORD、PDF),通常而言在结构化的数据中搜索性能是比较高的,全文搜索的目的就是把非结构化的数据变成有结构化的数据进行搜索,从而提高搜索效率。Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。

weixin_60359542的博客 1457

ElasticSearch概述与核心概念

ElasticSearch概述与核心概念说明:一、概述二、Elasticsearch重要概念三、Elasticsearch 系统架构 说明: 该文章内容整理自网络,如有侵权,请及时联系博主 一、概述 ES相关概述 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。The Elastic Stack, 包括 Elasticsearch、Ki

聚焦大数据、AI、数据库三大核心领域,分享 Flink/Spark 实时计算、数仓架构设计、AI 模型落地、数据库性能调优的实战干货,附可直接运行的源码与方案。提供企业技术内训、项目咨询与定制化服务,助力开发者与企业高效搞定数智技术难题。 315

ElasticSearch全文搜索引擎 -Spring Boot操作ES(SpringData概述、Spring Data Elasticsearch、基本操作、

数据库redisMongoDB等包括数据库在内,很多第三方数据都可以使用SpringData操作,非常方便。

m0_67403240的博客 409

Elasticsearch搜索引擎原理概述(二)

Elasticsearch介绍 Elasticserch是一个开源且分布式、RESTful风格的搜索引擎和数据分析引擎,由Java编写,它的内部使用的是Apache Lucene做索引功能,Elasticsearch建立在一个全文的搜索引擎库“Apache Lucene”基础之上,作为Elastic Stack的核心,它集中存储你的数据。 Elasticsearch不仅仅只...

weixin_34240520的博客 294

ElasticSearch之es概述及简单配置(类似前言,用处不大)

ES的起源 1999年一个名为Lucene的开源项目诞生,lucene是一个用java写成的检索工程库,2005年成为apache的顶级项目,对full-text检索非常高效,但是难于应用,难于配置,难以扩展制约了lucene发展。基于此2004年Shay Banon开发了一个名为Compass的基于lucene的产品,目标是让搜索更简单的应用于java程序的同时更易于扩展性的需求。2010年S...

保持不满足于简单解释的好奇心,提高戳中问题本质的能力 357

Elasticsearch概述

聊聊Doug Cutting Doug Cutting,Hadoop语言和Lucene工具包的创始人 个人经历 1985 年,Cutting 毕业于美国斯坦福大学。在大学时代的头两年,Cutting 学习了诸如物理、地理等常规课程,所以说他并不是一开始就决心投身 IT 行业的,因为学费的压力,Cutting 开始意识到,自己必须学习一些更加实用、有趣的技能。这样,一方面可以帮助自己还清贷款,另一方面,也是为自己未来的生活做打算。因为斯坦福大学座落在 IT 行业的“圣地”硅谷,所以学习软件对年轻人来说是再自然

微信公众号: 后端码匠 489

ES:ElasticSearch-概述(一)

ElasticSewrch(ES)与solr一样也是一个基于lucene的搜索服务器,它基于RESTfulweb接口,相对于solr,它更适合于海量级的搜索,同时ES的实时性比solr要好,延迟最多1秒,另外它的可扩展性也比较好,在ES的集群中可以很方便的增加一个节点。 ES和solr一样,也是以文档的形式存储数据的。 ES基本概念: Index   类似于mysql数据库中的databa...

博客 871

Elasticsearch 概述

Elasticsearch,简称为 es,es 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据,本身扩展性很好,可以扩展到上百台服务器,处理 pb级别的数据,es 也使用 java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 restful api 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单,据国际权威的数据库产品评测机构 DB Engines 的统计,在 2016 年 1 月,ElasticSearch 已超过 solr

二哈 820

ElasticSearch 概述

ElasticSearch 概述

.G();的博客 1032
上一篇: elasticsearch 安装
下一篇: Nginx 核心配置文 nginx.conf介绍
过去日记
过去日记 新星创作者: 后端开发技术领域 新星创作者: 后端开发技术领域
博客等级 码龄3年 5343粉丝 225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过去日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值