Elasticsearch 倒排索引原理

看下面这个表格里的文档内容:
在这里插入图片描述
如果我这时候想要在这么多文档中查找带有 比亚迪 的我要怎么查,传统这个查询里面我想查这个比亚迪的话。就是先在文档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.hqwc.cn/news/22689.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多态的基本使用

这部分的内容主要是记住使用方法,原理在之后会讲。 多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 比如说买票,普通人买票就是正常买&…

Low-Light Image Enhancement via Self-Reinforced Retinex Projection Model 论文阅读笔记

这是马龙博士2022年在TMM期刊发表的基于改进的retinex方法去做暗图增强(非深度学习)的一篇论文 文章用一张图展示了其动机,第一行是估计的亮度层,第二列是通常的retinex方法会对估计的亮度层进行RTV约束优化,从而产生…

OPPO手机便签怎么上传录音文件?

相信很多网友对OPPO这个手机品牌并不陌生,因为它凭借时尚轻薄的外观设计、流畅简约的系统、清晰的拍照摄影以及高中低不同的价位选择,赢得了不少年轻消费者的青睐。不过在使用OPPO手机的过程中,也有不少用户表示自己遇到了各种各样的问题&…

接口突然超时10宗罪。。。

前言 不知道你有没有遇到过这样的场景:我们提供的某个API接口,响应时间原本一直都很快,但在某个不经意的时间点,突然出现了接口超时。 也许你会有点懵,到底是为什么呢? 今天跟大家一起聊聊接口突然超时的…

IEEE ICME 2023论文|基于交互式注意力的语音情感识别联合网络

论文题目: A Joint Network Based on Interactive Attention for Speech Emotion Recognition 作者列表: 胡英,侯世静,杨华敏,黄浩,何亮 研究背景 语音情感识别(Speech Emotion Recognitio…

Java正则表达式简介及Jar包

Java提供了java.util.regex包,用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似,非常容易学习。 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在…

【LeetCode热题100】打卡第34天:排序链表乘积最大的子数组

文章目录 【LeetCode热题100】打卡第34天:排序链表&乘积最大的子数组⛅前言 排序链表🔒题目🔑题解 乘积最大的子数组🔒题目🔑题解 【LeetCode热题100】打卡第34天:排序链表&乘积最大的子数组 ⛅前…

COT、COT-SC、TOT 大预言模型思考方式||底层逻辑:prompt设定

先讲一下具体缩写的意思 COT-chain of thoughts COT-SC (Self-consistency) Tree of thoughts:Deliberate problem solving with LLM 我理解其实不复杂 1. 最简单的是:直接大白话问一次 (IO) 2. 进阶一点是:思维链,…

DolphinScheduler使用问题记录

1.资源中心 功能板块 出现 storage not startup #问题原因 提示:“storage not startup”,顾名思义:未启用存储 #解决方式 1. 修改两个 common.properties 文件: api-server/conf/common.properties worker-server/conf/common.p…

Azure Kinect DK 在设备管理器找不到此设备

参考 Azure Kinect DK 在设备管理器找不到此设备_Thomas_yx的博客-CSDN博客 type-c------------------type-c 接电脑,数据传输 圆------------------usb 电脑线

【算法基础】搜索与图论

DFS 全排列问题 842. 排列数字 - AcWing题库 #include<bits/stdc.h> using namespace std; const int N10; int n; int path[N]; bool st[N]; void dfs(int x) {if(x>n){for(int i1;i<n;i) cout<<path[i]<<" ";cout<<endl;return ;…

Linux(centos 7)将 ens33 改为 eth0

背景&#xff1a; 先说明一下 eth0 与 ens33 的关系&#xff0c;目前的主流网卡为使用以太网络协定所开发出来的以太网卡&#xff08;Ethernet)&#xff0c;因此我们 Linux 就称呼这种网络接口为 ethN (N为数字)。 举个例子&#xff1a;就是说主机上面有一张以太网卡&#xff0…