Elasticsearch 倒排索引原理

news2024/10/7 10:14:53

看下面这个表格里的文档内容:
在这里插入图片描述
如果我这时候想要在这么多文档中查找带有 比亚迪 的我要怎么查,传统这个查询里面我想查这个比亚迪的话。就是先在文档1里面搜索一下有没有 比亚迪,没有,我在到文档2中查找比亚迪,还是没有,然后到文档3里面查询也是没有比亚迪的,再到文档4里面查还是没有 比亚迪,直到到文档5里面才找到比亚迪的文档信息。

然后再把比亚迪的这个文档5的信息再返回给客户端进行展示起来,这就是传统方式的正排索引,其实他的查询效率特别的低。

接下来说下什么是倒排索引

其实你像很多搜索引擎技术(比如:Solr、Elasticsearch、Lucene)索引用的都是倒排索引,那倒排索引到底是什么意思?

倒排索引会根据你的文档内容把一些关键字做一些分词,相当于用关键字定位到你的文档内容,这是什么意思?

举个例子,还是以这个文档讲一下,这5条文档里面全文检索首先会分析一下,把一些关键字进行整合起来,如下列表所示:
在这里插入图片描述
比如说这个 可能是经常搜到的关键字,还有一家也是比较多的,包括科技公司这也是关键字,还有什么创始人 ,包括开的汽车 奥迪 也是一个品牌,他也是个关键字,他会把这些关键字记录下来,这些关键字就会有个关键字的单词表。

这时候分析这个字,它是唯一的。

那么 小 在 1 2 3 4 5 里面都有存放,这个字会有个表格,会记录的关键字在哪些文档出现了有个序号会全部记录下来

再来说一家这个关键词,一家它也是一个关键词,经常通过这个去搜索,那么一家的话是不是在文档1里面出现了,文档2 里面他也出现了,文档3没有出现,文档4也出现了,文档5也出现啦,那他怎么记录的,就是 1 2 4 5 。

大家在这里记住一点,最终这个词库的话会把文档内容中一些常用的名词通过一个单词表记录一下它的出现频率,这些单词哪些文档出现次数比较多的,它都会记录下来。

那么这些我们就可以把他叫做词库,比如说最近出现了什么新闻,热词,那么这些热词的话可以自己去联网,去读哪些热词的,或者手动添加进去也是可以的,添加到词库里面去的

比如说我是用户搜索这个奥迪,他不需要像正排索引那样去文档里面一个个的找,他只要去找我们这个索引表就行了,通过这个表我就知道,这个奥迪在文档 1 4 里面都出现了,那这时候就可以快速的返回给客户端,反过来再搜索比亚迪,比亚迪 在文档 5 里面出现了,那这时候直接返回文档5 内容给客户端不就可以了。

这就叫倒排索引,他比任何索引理解起来都要简单,说白了他对应的文档内容关键字做了一些收集,把一些关键字在哪些文档出现的评率比较多的会收集起来,就是这样的流程。

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

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

相关文章

go-zero系列-限流(并发控制)

参考文章:https://go-zero.dev/docs/tutorials/service/governance/limiter 步骤: 1、压测工具hey下载安装: go install github.com/rakyll/hey (会安装到GOPATH/bin目录下)2、在yaml配置文件中加入: #最大连接数 MaxConns: 10…

数字化时代:虚拟数字人的智能进化与生活变革

我们需要实现对人工智能的有效监管。政府应该与科技公司合作,建立监管框架,确保人工智能的发展能够在保护人类利益的基础上进行。人工智能的快速发展带来了巨大的机遇,但同时也伴随着一些潜在的风险。如果没有适当的监管措施,人工…

【华为OD机试】完全二叉树非叶子部分后序遍历【2023 B卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述: 给定一个以顺序储存结构存储整数值的完全二叉树序列(最多1000个整数), 请找出此完全二叉树的所有非叶子节点部分,然后采用后序遍历方式将此部分树(不包含叶子)输出。 1、只有一个…

[RocketMQ] Broker 消息刷盘服务源码解析 (十二)

同步刷盘: 在消息真正持久化至磁盘后RocketMQ的Broker端才会真正返回给Producer端一个成功的ACK响应。异常刷盘: 能够充分利用OS的PageCache的优势, 只要消息写入PageCache即可将成功的ACK返回给Producer端。消息刷盘采用后台异步线程提交的方式进行, 降低了读写延迟和提高了MQ…

LT15 取消TO 显示 转储请求项目 WH XXX 0001 不存在

LT15取消TO的时候,收到的错误收件箱信息 这个实际就是一个BUG,目前是无解的。 最后SAP官方使用debug处理掉的(如果自己艺高人胆大的话也可以处理) 以下为官方处理后的回复: the document has been cancelled. In L…

cobaltStrike克隆网站

试验目的 使用CS克隆网站获取键盘试验实验准备 kali cs实验步骤 启动cs服务端 sudo su切换root权限 进入cs目录 使用chmod 获取目录内最高权限 ./teamserver 192.168.24.131 12456 启动服务端[./teamserverip设置密码] 启动客户端登录并建立监听 打开新终端 切换进入cs目录 .…

百万网友AI导师李沐离职投身大模型,B站“组会”还会有吗?(文末赠书)

目录 1 求学之路:全能学霸2 AI之路:与深度学习结缘3 一战封神:亚马逊首席科学家4 动手学习深度学习 前阵子“沐神”李沐离开亚马逊、加入创业公司BosonAI的消息,引起了业内比较广泛的讨论。 而BosonAI的创始人正好是他的博士生导师…

基于Springboot的漫画网站(包论文)

原理和技术有: B/S、java技术和MySQL数据库原理和技术有: B/S、java技术和MySQL数据库原理和技术有: B/S、java技术和MySQL数据库 困扰管理层的许多问题当中,漫画信息管理一定是不敢忽视的一块。但是管理好漫画网站又面临很多麻烦需要解决,如何在工作琐碎,记录繁多的情况下将漫…

Layui之动态选项卡iframe使用(附源码)

目录 一、前言 1.什么是Tab选项卡 2.什么是iframe标签 3.使用iframe标签 二、案例实现 1.需求分析 ①在线Layui示例寻找合适的选项卡 ②点击左侧右侧没有url属性 ③点击左侧列表右侧内容多开问题 ④优化公共文件 2.Dao层的优化 3.JSP页面搭建 4.案例演示 5.总结 …

DevOps平台-图形化流水线调研总结

DevOps平台是企业级持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线CICD过程。通过持续向团队提供及时反馈,让交付过程高效顺畅。 对以下产品做了一些调研:

win+shift+s截屏失效问题解决

windows自带截图键(shift win s)不知道为何一开始能用,过段时间便失灵了,每次都得重启电脑才能恢复?以下是无需重启电脑的恢复方式: 方式一 、 Fnwin 如果上面的没用 方式二、打开任务管理器 选择Windows资源管理器重启 ctrl alt . 或者 任务栏右键选择任务管理器

Moonbeam赞助波卡黑客松亚洲区,促进互连合约应用发展

波卡黑客松亚洲区于7月3日开跑!Moonbeam将在本次黑客松提供两个赛题,促进Connected Contract应用发展,优选者将于9月6日在首尔进行发表。 波卡黑客松亚洲区于7月3日正式开启,由波卡生态系统中的众协议共同举办,一同召…

基于linux下的高并发服务器开发(第一章)- 动态库的制作1.6

01 / 什么是库 命名规则: Linux:libxxx.so lib:前缀(固定) xxx:库的名字,自己起 .so:后缀(固定) 在Linux下是一个可执行文件 Windows:libxxx.dll 动态库的制作: gcc 得到 .o 文件,得到和位置无关…

JVM (simple Version)

简介 JVM 其实就是一个Java进程 , 从操作系统申请一大块内存区域, 供 java 代码使用 . 申请出的内存 , 进一步划分 , 给出不同的用途 . JVM 内存区域划分 : 堆中存放就是 new 出来的对象. (成员变量) 栈 是用来维护方法之间的调用关系 (局部变量) 元数据区(或者叫方法区) 存放的…

联汇科技发布自主智能体 OmBot 欧姆智能体及 OmBot OS 操作系统

今年加入 OpenAI 的大牛、前特斯拉 AI 总监 Karpathy 在最近的一次开发者活动上表示:AI 智能体,代表了 AI 的一种未来! 不仅是他,全球 AI 领域的大佬和科技巨头对 AI 智能体的发展都表现出极大兴趣,并寄予厚望。 大语言…

享元模式:优化对象的共享与重复利用

享元模式是一种结构型设计模式,它通过共享对象来最大程度地减少内存使用和对象创建的开销。本文将深入探讨享元模式的原理、结构和使用方法,并通过详细的 Java 示例代码来说明。 1. 享元模式的定义 享元模式是一种通过共享对象来有效地支持大量细粒度对…

简单的聊一聊如何用CSS制作一个专业的头部页眉(Headers)

一个吸引人的网页页眉对于给访问者留下良好的第一印象至关重要。一个设计精良的页眉不仅能够吸引注意力,还能为整个网站设定基调。借助CSS,创建现代化和视觉吸引力的网页页眉比以往任何时候都更加容易。 在本文中,我们将探索一些基本的技巧和…

虹科分享 | 如何基于IO-Link wireless方案实现工厂数据采集和状态监测

数据和数字化是工业4.0变革的关键驱动因素。从整个工厂的传感器获取数据,除了优化制造计划和流程外,还能实现强大的分析和决策。目前,基于数据的应用正在催生更多智能解决方案,以提高制造业的灵活性和敏捷性,进而提高效…

【unity细节】GameObject.Find和 transform.Find 核心区别

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐Find找子对象的子对象,GameObject.Find 和 transform.Find的区别 ⭐ 文章目录 …