ElasticSearch简介之倒排索引

这篇具有很好参考价值的文章主要介绍了ElasticSearch简介之倒排索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 第二点必须准确吧,假如我搜索关键词电脑,结果搜索出来的结果是一些奇奇怪怪的东西,要是在这时候投屏怕不是会陷入社死的尴尬吧。

  2. 第三点对于我这种比较粗心的人还是需要有一点的容忍度,哪怕输错其中一个字,也可以给出相关的搜索结果。

  3. 第四点对于大部分人而言,相信大多数人都会希望进行搜索的时候可以有相关的搜索选项提供选择,而不是都是需要自己相办法去思考所有的关键词,毕竟人都是喜欢偷懒的,从某种程度上而言,人们的偷懒促进了现代社会的发展。

​ 说完这几点相信很多的搜索引擎都是奔着这几个目标去的,显而易见 ElasticSearch 满足了上面所有的搜索的基本要求,相信小白(包括我啦)到这里都很想去尝试一下,网上的安装教程和简单 HelloWorld 都是有的,可以自己使用单机版简单的玩耍一下,在这里就不一一赘述了。简单的 Demo 过后是不是很多人都好奇 ElasticSearch 搜索的具体实现方式是怎么实现的,是依靠什么满足上诉第一点的要求,那么开启接下来的里程吧。

倒排索引


抽象模型

​ 众所周知的是 ElastichSearch 使用的是 Lucene 来作为底层的框架来进行一个数据的搜索, Lucene 则是一个高性能的全文检索引擎工具,很多的搜索引擎都是以 Lucene 为工具包,进行二次开发,那么究竟是什么使得 Lucene 这个工具,具有如此的魅力,提到这个就不得不说一下他的一个独特数据结构-倒排索引了。

​ 接下来进入正式环节。在说倒排索引之前,先进行我们正常的思路是如何来对下列的数据进行一个检索的。

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

​ 普通按照我们正常的思路来进行一个全文的检索,就是使用一个遍历的方式来进行一个关键字的获取,比如我们要检索关键字 keyworld1 时就需要把所有的数据进行检索一编,当然在数据量小的时候这并没有什么影响,反而因为简单处理会速度比较快,没有那么多的性能问题,但是当数据量以百万或者千万级别以上进行的时候就不行了,这个时候遍历一下的速度是我们难以忍受的,如果要花很多的时间好像就没有人愿意进行一个等待了。

​ 为了解决这方面的问题就提出了倒排索引这个比较独特的数据结构,来解决相关的搜索性能问题:那么这种数据结构是怎么样的呢,首先我们给出一个抽象的示意图。

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

​ 倒排索引对刚进来的文档进行一个索引的构建,把一份文档中所有出现过的关键字放入一个列表中,这个列表被称为单词辞典也就是对应上图的绿色部分,而相对应的文档则是如右侧的红色节点所示,当然,对应的文档不一定是按照列表显示的,也可以选择其他的数据结构比如 B+ 树之类的,当然文档 1 ,这个节点并不是说就存储了相对应的文档,而是存储了这个文档的唯一标志 id ,通过这个 id 可以快速的定位文档的位置。除此之外还要可能红色节点存储了相应的出现的频次,这为后续的给出的排序提供了依据括号表示相应的频次,当然节点里面的数据不一定只有这么一点,肯定还是有很多其他的统计。 那么肯定会有人问如果是模糊搜索是怎么排序,那么肯定是检索绿色的这排,给出相关的文档,排序什么的是按照自己定义的一些规则来进行匹配,后续文章会给出相关性的算法。

​ 大致倒排索引的理论是这样子的,那么就给出相关的例子进行说明一下,以我们之前给出的 HelloWorld 版本进行说明 两个文档的 Json 如下

[

{

“id”: “2”,

“name”: “second Helloworld 2”,

“organizer”: “wangwu”,

“version”: “1.0”

},

{

“id”: “1”,

“name”: “ElasticSearch Helloworld”,

“organizer”: “qingtong”,

“version”: “1.0”

}

]

复制代码

​ ElasticSearch 会为了每一个字段建立一个倒排索引,那么我们以 name 这个字段的倒排索引为例:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

复习的面试资料

这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)

  • 第一部分:Java基础-中级-高级

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • 第三部分:性能调优(JVM+MySQL+Tomcat)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

ElasticSearch简介之倒排索引,程序员,elasticsearch,大数据,搜索引擎

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
WDS9-1711973594446)]

[外链图片转存中…(img-c1Lx6rgY-1711973594446)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-852380.html

到了这里,关于ElasticSearch简介之倒排索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 10、全文检索 -- Elasticsearch -- 介绍、下载,42岁程序员面试

    目录 全文检索 – Elasticsearch – 介绍、下载、安装、配置、开启安全机制、设置用户密码、为 Elasticsearch 启用 SSL 和 HTTPS 支持 Elasticsearch 介绍 官网下载 Elasticsearch 安装 Elasticsearch 1、bin 目录介绍 2、配置环境变量 3、修改配置文件 4、启动 Elasticsearch 5、查看 Elasticsearch 启动结果

    2024年04月26日
    浏览(49)
  • Elasticsearch(1)——倒排索引与HTTP操作Elasticsearch

    1 前言 Elastic Stack 核心产品包括 Elasticsearch【存储数据】、Kibana【展示数据】、Beats 和 Logstash【收集与传输数据】(也称为 ELK Stack)等等。能够安全可靠地从任何来源获取任何格式的数据,然后对数据进行搜索、分析和可视化。sa Elasticsearch 是一个分布式、RESTful 风格的搜索和

    2024年02月12日
    浏览(37)
  • 【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么

    首先,要明确的是,Elasticsearch本质上只使用倒排索引来实现高效的搜索和查询功能。正向索引虽然在某些数据库和搜索系统中被提及,但在Elasticsearch的上下文中并不是一个核心概念。下面我详细解释倒排索引,并简要提及正向索引以提供对比。 倒排索引是Elasticsearch中用于实

    2024年02月22日
    浏览(51)
  • Elasticsearch的倒排索引是什么?

    Elasticsearch是基于 Apache Lucene【lusen】的搜索引擎,支持Restful API风格【可以使用常见的HTTP请求来访问】,并且搜索速度很快,可以提供实时的搜索服务。 其实Elasticsearch的功能有很多,比如分布式存储、实时数据分析等很多方面。使用ES的好处有几点: 系统解耦。使用ES之后,

    2024年04月10日
    浏览(41)
  • GPT引领学习之旅:弥补信息差,助力程序员高效掌握Elasticsearch

    Elasticsearch作为一款流行的开源搜索和分析引擎,持续迅速发展,随着版本的更新,功能和特性也在不断变化。GPT虽然具备大量的计算机科学、编程语言和工具相关的知识,但其知识截止于2021年。为了弥补GPT与实际情况之间的信息差,我们可以采取以下策略,将GPT与实际情况

    2024年02月02日
    浏览(118)
  • GPT引领学习之旅:适应不同级别程序员的Elasticsearch学习案例

    在本文中,我们将为初级、中级和高级程序员分别提供一个Elasticsearch学习案例,展示如何利用GPT进行针对性学习。 假设您是一名初级程序员,想要在自己的个人博客中集成Elasticsearch搜索引擎,以下是学习和实践的过程: 学习目标:了解Elasticsearch基本概念、安装配置、数据

    2023年04月24日
    浏览(57)
  • GPT引领学习之旅:一篇让程序员轻松掌握Elasticsearch的攻略

    随着大数据技术的飞速发展,程序员们面临着越来越多的挑战。Elasticsearch作为一款流行的开源搜索和分析引擎,已成为许多项目的重要组成部分。那么如何高效地学习并掌握Elasticsearch呢?在这篇文章中,我们将探讨如何运用GPT(Generative Pre-trained Transformer)技术,帮助程序员

    2024年02月02日
    浏览(62)
  • 《面试1v1》ElasticSearch倒排索引

    🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结, 点击 突击面试 🍅 数十万人的面试选择: 面试说人话系列《面试1v1》 我是 javapub,一名 Markdown 程序员从👨‍💻,

    2024年02月13日
    浏览(42)
  • ElasticSearch:全文检索及倒排索引原理

    首先介绍一下结构化与非结构化数据: 结构化数据将数据具有的特征事先以结构化的形式定义好,数据有固定的格式或有限的长度。典型的结构化数据就是传统关系型数据库的表结构,数据特征直接体现在表结构的字段上,所以根据某一特征做数据检索很直接,速度也比较快

    2024年02月14日
    浏览(44)
  • 【Elasticsearch专栏 02】深入探索:Elasticsearch为什么使用倒排索引而不是正排索引

    Elasticsearch选择使用倒排索引而不是正排索引,主要是基于倒排索引在处理全文搜索和大规模数据集时的优势。下面将详细解释为什么Elasticsearch更倾向于使用倒排索引,并提供一些简化的代码片段来说明这两种索引结构的基本差异。 正排索引是一种将文档映射到其包含的单词

    2024年02月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包