倒排索引原理,即为什么叫倒排索引

article/2025/9/11 14:15:08

倒排索引的英文原名是Inverted index,大概因为Invert有颠倒的意思,所以就被翻译成了倒排,然后我们就会在字面上出现误解:理解为从A-Z颠倒成Z-A。其实它并不是字面上的意思。

倒排索引源于实际应用中需要根据属性的值来查找记录,也就是说,不是由记录来确定属性值,而是由属性值来确定记录,因而称为倒排索引

建立全文索引中有两项非常重要,一个是如何对文本进行分词,一是建立索引的数据结构。分词的方法基本上是二元分词法、最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构,lucene就是基于倒排索引来实现的。其索引表中的每一项都包括一个属性值和具有该属性值的各记录id或地址。

带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)

倒排索引一般表示为一个三元组:关键词、词频(出现的次数)、id或位置(出现在哪篇文章或网页中,及有关的日期,作者等信息)。它相当于为所有文档或者互联网上几千亿页网页做了一个索引。可以理解为打标签,所以我们只需根据标签就能快速匹配到对应文档或网页。

一个未经处理的数据库中,一般是以文档ID作为索引,以文档内容作为记录。

而Inverted index 是将单词作为索引,将文档ID作为记录,这样便可以方便地通过单词或记录查找到其所在的文档。

步骤1)读取一整条句子到变量str中

步骤2)从句子的尾端读取1个字到变量word(单词)中

步骤3)在字典查找word中保存的单词。如果不存在则保存word并转到步骤4,否则转到步骤5

步骤4)如果是字典中最大单词或者超过最大单词数(认定为新词),从句尾去掉该单词,返回步骤2

步骤5)继续读取前一个字到word中,转到步骤3

 

 

内存中单词采用层次结构保存。假设字典中有如下的单词:中国 中华民国 国家 人民 民主

在内存中按照如下方式按层排列,其中每一个方块代表一个字,箭头所指向为该单词的前一个字

举例说明:假如现有三份数据文档,文档的内容如下分别是:

doc1:Java is the best programming language.

doc2:PHP is the best programming language.

doc3:Javascript is the best programming language.

创建一个包含所有不重复词条的排序列表,然后列出每个词条出现在哪个文档

再将上面的内容转换为图的形式来说明倒排索引的结构信息:

 

Lucene倒排索引原理见: https://blog.csdn.net/Trisyp/article/details/108099087

 


http://chatgpt.dhexx.cn/article/8ADWUIsV.shtml

相关文章

【数据库】数据库索引原理

正确的创建合适的索引 是提升数据库查询性能的基础 文章目录 1.索引是什么?2.为什么?3.索引原理B tree 4.B tree 在两大引擎中的体现5.索引的原则 1.索引是什么? 索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。 2.为…

Mysql数据库的索引原理

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进…

MySql索引原理与使用大全

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 一、索引介绍 索引是对数据库表中一列或多列的值进行排序的一种结构。在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相…

MySQL:索引原理

文章目录 1、索引概念1.1、使用场景1.2、索引代价 2、索引分类2.1、数据结构2.2、物理存储回表查询 & 覆盖索引 2.3、字段(列)属性2.3.1、主键索引主键的选择 2.3.2、唯一索引2.3.2、普通索引2.3.3、前缀索引 2.4、字段(列)个…

索引的原理和实现的方式

建立索引 需要有索引的类型和索引的方法。 索引的类型包括了Normal Unique Full text 而索引的方法包括了BTREE 和HASH 转载文章:https://www.cnblogs.com/aspwebchh/p/6652855.html 博主写的真好~ 一、什么是Btree B tree (非二叉) 了…

索引的实现原理

这篇文章是介绍MySQL数据库中的索引是如何根据需求一步步演变最终成为B树结构的以及针对B树索引的查询,插入,删除,更新等操作的处理方法。Oracle和DB2数据库索引的实现基本上也是大同小异的。文章写得很通俗易懂,就转在这了。关于…

MySQL索引的理解学习,面试不问索引原理就是事务原理

目录 MySQL执行SQL的整体流程 引言, MySQL索引底层学习原因 磁盘介绍(理解磁盘IO) 索引底层数据结构B树 B树(聚集索引) B树(辅助索引) 思考一下为何使用B树结构, 不是B树, 不是平衡树二叉树,红黑树? 索引总结 MySQL执行SQL的整体流程 显示需要跟MYSQL Serv…

Git | 面试官问你 Git 原理,你能回答得出来吗?

文章目录 原创声明前言一、Git 简单介绍二、解开 Git 在日常上班操作中的神秘面纱2.1 初始化仓库git init 2.2 第n次提交git add xxxgit statusgit commit -m "xxx" 2.3 分支2.3.1 创建分支 git branch xxx2.3.2 切换分支 git checkout 2.3.3 分支中提交 总结参考资料…

Git概念及工作原理总结

Git是分布式版本控制系统。Github和华为等均使用Git作为代码管理工具。之前在工作中比较常用到的是克隆、代码提交拉取、解决回合冲突、代码回滚等。在实际的工作中,可能回合时冲突及版本回退的情况较多,下文将着重介绍这两点。本文不涉及Git的安装等&am…

Git 天天用 但是 Git 原理你了解吗?

前言 做技术一定要知其然知其所以然,意思就是:知道它是这样的,更知道它为什么是这样的。我主要通过4块内容来简单介绍 Git 原理是什么样的。这4块内容如下: Git 存储目录结构介绍Git 是如何存储的Git 的对象Git引用 当然 Git 原…

(一篇就够)git原理深入理解

深入理解git原理 1:git工作模式 基本步骤: 1.workspace 本地工作空间add命令 提交到本地缓存 2、localcache本地缓存commit命令提交到本地仓库 3、localRepository本地仓库push命令提交到远程仓库 拉取步骤: clone 克隆到本地仓库 checkout…

git原理笔记(一)

git原理笔记(一) 这个笔记是对于git内部原理的一个理解。网上很多关于git的用法的教程。这里推荐廖雪峰的git教程。 这里主要记录如下的内部原理的理解 1. git如何存储 2. git如何管理版本 一. git如何存储 常常在使用git的过程中&#…

git工作原理

一. git工作原理 二. git分支标准流程 三. git工具:sourcetree 待续知识分享

git原理和常用命令

git git介绍git工作流程git的几个核心概念 git常用命令参考资料 git介绍 git-分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 git特点 优点: 适合分布式开发,强调个体; 公共服务器压力和数据量都不会太…

Git分支原理

Git分支原理 前言 最近工作由SVN换成Git了,不由地想探寻一下这两种版本控制工具的差别到底在哪里,于是有了这篇笔记。 Git保存方式 Git和SVN的差别主要就在于对待数据的方式。 SVN将存储的信息看作是一组基本文件和每个文件随时间逐步累积的差异&…

git fetch工作原理

背景 相信大家都知道git pull命令相当于git fetch加git merge。那么直接使用git pull和分开使用有什么区别呢&#xff1f;要解答这个问题首先要想了解git fetch的工作原理是什么样的。 git fetch的工作原理 先讲一下什么是远程跟踪分支。远程跟踪分支以 <remote>/<…

Git原理入门解析

前言: 自己第一次听到Git应该是一年前了,当时很懵,不知道它是干啥的,在网上搜索了很多文章,一直不是太明白;今天我来记录一下自己对Git的学习,如果对其他童鞋有所帮助,我荣幸之至! 一、Git 简析 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。…

Git原理详解与实用指南

文章目录 上手 1&#xff1a;新公司用 Git 管理代码&#xff0c;怎么快速上手&#xff1f;上手2&#xff1a;团队工作的基本工作模型进阶1&#xff1a;HEAD、master与branch进阶2&#xff1a;push的本质进阶3&#xff1a;merge&#xff1a;合并commits进阶4&#xff1a;Feature…

最详细的Git原理总结+如何解决冲突

原文路径是https://www.cnblogs.com/cb0327/p/5066685.html 目录 1.提交 代码到远程仓库2.将远程仓库代码更新到本地3.更新到本地仓库时&#xff0c; 出现冲突&#xff0c;解决冲突后记&#xff1a; 正文 本文背景&#xff0c;在实际项目中使用git已有一年&#xff0c;发现不少…

图解git工作原理

git 是一个能处理各种大小项目的开源版本控制系统&#xff0c;本文想通过两张图来简单说明git的工作原理 从上图可以知道git分四个部分来记录文件状态 working directory:工作区&#xff0c;开发者直接修改的本地代码树 staging area&#xff1a;暂存区&#xff0c;用于临时保存…