Elasticsearch是什么及作用

初识Elasticsearch

一、Elasticsearch是什么?

  • es是款强大的开源搜索技术,具备非常多强大的功能,能够帮助我们开发人员从海量数据中快速找到需要的内容。例如在GitHub上搜索代码,在jd、tb网站中搜索商品、在baidu中搜索答案。

二、Elasticsearch组成及作用?

  • es结合kibana、Logstash、Beats(数据收集),也就是elastic stack(ELK)。作用被广泛的应用在实现搜索、日志统计、分析、系统监控等功能。

es中倒排索引的概念

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

举个栗子:

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

  1. 用户输入条件"华为手机"进行搜索。
  2. 对用户输入内容分词 ,得到词条:华为手机
  3. 拿着词条在倒排索引中查找,可以得到包含词条的文档id:1、2、3。
  4. 拿着文档id到正向索引中查找具体文档。

如图示:

倒排索引的优缺点:

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

mysql与elasticsearch

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

对比总结:

  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性
  • Elasticsearch:擅长海量数据的搜索、分析、计算
  • 对安全性要求较高的写操作,使用mysql实现
  • 对查询性能要求较高的搜索需求,使用elasticsearch实现
  • 两者再基于某种方式,实现数据的同步,保证一致性
相关推荐
寻道模式7 分钟前
【时间之外】私有化部署AI的3个优点和3个缺点
大数据·人工智能·ollama·私有化·genericagent
郑寿昌10 分钟前
2026脑机接口与大模型融合架构解析
大数据·人工智能·架构
涤生大数据15 分钟前
大数据面试高频题:row_number() 数据倾斜到底怎么解决?
java·大数据·面试
lizhihai_9920 分钟前
股市学习心得-技术指标学习(布林线+MACD)
大数据·人工智能·学习
胡耀超25 分钟前
《设计数据密集型应用》(DDIA, 2nd ed.) 心智模型导览——《Designing Data-Intensive Applications》书介绍导航
大数据·数据库·分布式·ai·架构·数据
一个数据大开发31 分钟前
数据中台架构中本体驱动的语义治理实践
大数据·架构
夏贰四33 分钟前
数据库管理有哪些核心要点?数据库管理该如何规范落地?
大数据·数据库·数据库管理·数据库管理员
石逸凡39 分钟前
论组织本源与钻形式招牌的空子
大数据·组合模式
千桐科技40 分钟前
qData 数据中台开源版v1.5.2 正式发布!重构建模流程,完善全域数据资产治理体系
大数据·开源·#开源项目·# 数据中台·#中小企业数字化·#数据治理·#数字化转型
Elastic 中国社区官方博客2 小时前
一个查询,无限 Elasticsearch Serverless 项目:跨项目搜索介绍
大数据·elasticsearch·搜索引擎·信息可视化·云原生·serverless·全文检索