文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ElasticSearch为什么快?你知道为什么吗?

2024-11-30 00:19

关注
  1. 搜寻引擎:快速检索文档、商品、新闻等之应用。
  2. 日志分析:透过日志数据分析,帮助企业认知业务绩效状况。
  3. 数据分析:辅助数据科学家与分析师进行数据剖析,以取得珍贵信息。
  4. 商业智能:辅助企业制定数据导向决策,达成商业上之成功。
  5. 实时监控:协助企业实时监测系统绩效、监控数据变动,以确保系统正常运作。
  6. 安全性:资助企业确保数据安全,保障数据不受非法窃取。
  7. 应用程序开发:资助开发者开发基于搜寻之应用程序,提升用户体验。

Elasticsearch具备以下优势:

  1. 高性能:擅长搜索与分析,包含多种查询语言与数据构架。
  2. 可扩展性:分布式构架,透过增加节点数增强搜索与分析能力。
  3. 灵活性:支持多数据类型、多语言,动态映射、快速调整模型以应对不同需求。
  4. 近实时分析:支持近实时分析(NRT near real time),提供实时数据查询,有利于快速数据检索。
  5. 可靠性:具备可靠性和高可用性,支持数据备份与恢复。

ElasticSearch为什么快?

Elasticsearch乃一款高性能、分布式搜索引擎,其速之快者,缘由如下:

  1. 分布式储存:采用分布式储存技术,将数据存储于多节点,分散负载,优化整体执行效能。
  2. 索引分片:将每索引分裂为多片段,实现并行查询,提升搜索速度。
  3. 全文索引:运用高效全文索引技术,将文档转化为可搜索的结构化数据,快速高效地完成搜索操作。
  4. 倒排索引:支持倒排索引数据结构,映射文档中每个词汇至文档出现位置,当搜索请求发生时,能快速检索包含所有搜索词的文档,迅速返回结果。
  5. 索引优化:通过索引优化技术提高查询速度。支持索引覆盖、索引下推等优化技术,加速查询操作。
  6. 预存储结果:插入数据时,预处理数据,将结果预存储于索引中,查询时无需重新计算,提升查询速度。
  7. 高效查询引擎:采用高效查询引擎,支持各种查询类型,为复杂查询提供优化策略,提高查询速度。
  8. 异步请求处理:采用异步请求处理机制,在请求抵达时立即回馈,避免长时间等待,提升用户体验。
  9. 内存存储:应用内存存储技术,在数据读写中减少磁盘访问次数,提高数据存储与查询效率。

综上所述,Elasticsearch之所以这么快,由于其运用多项高效技术,提升数据存储、查询、处理效率,构筑快捷搜索体验。

倒排索引是什么?

在Elasticsearch中,倒排索引是一种常见的索引结构,用于快速搜索文档中的特定词汇。

与传统索引结构相反,倒排索引的构建方式不同。传统索引结构是以文档为基础,每个文档包含多个词汇,然后根据这些词汇建立索引。而倒排索引则以词汇为基础,每个词汇对应多个文档,然后根据这些文档建立索引。这种结构使得在搜索过程中能够快速定位包含目标词汇的文档,从而加速搜索效率。

对于一份含有多个词汇的文档,倒排索引将每个词汇视作一个关键字(Term),记录该词汇所属文档的编号(Document ID)以及在文档中的位置(Term Position)。这种方式使得当用户输入关键字时,能够迅速查找到包含该关键字的文档编号,再通过编号找到相应文档内容。

倒排索引的优势在于能迅速锁定含指定关键字的文档,同时支持复杂搜索操作,如词组搜索、通配符搜索等。此外,由于倒排索引以词汇为基础构建,因此在数据分析和统计方面也具备重要意义。在Elasticsearch中,倒排索引是一种至关重要的索引结构,广泛应用于搜索引擎、日志分析、推荐系统等领域。

倒排索引建立过程

ES中的倒排索引建立过程主要有2个步骤,分别是分词、建立倒排索引

比如我们现在有三份文档内容,分别是

id

content

1

深入理解Java核心技术

2

深入理解Java虚拟机—周志明

3

Java编程思想—布鲁斯·埃克尔

分词

在倒排索引构建过程中,首先是将文档原始内容分割为词项(Term)。Elasticsearch 默认采用标准分析器(Standard Analyzer)进行分词处理。

经过分词处理后,您提供的三份文档内容将包含诸如"深入"、"理解"、"Java"、"核心"、"技术"、"编程"、"思想"、"周志明"、"布鲁斯·埃克尔"等词语。

生成倒排索引

将分开的词,当做索引,与对应的文档ID进行关联,形成倒排表。

词条

文档ID

深入

1,2

理解

1,2

Java

1,2,3

虚拟机

2

核心

1

技术

1

编程

3

思想

3

在倒排表生成完毕后,常规操作是对倒排表进行压缩,以减少其空间占用。流行的压缩算法包括Variable Byte Encoding和Simple9等技术。最后,压缩后的倒排表将被存储在磁盘上,以确保日后的搜索过程能够迅速访问倒排表。

来源:码上遇见你内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯