什么是反向索引

反向索引英文名叫做 Inverted index,顾名思义,是通常意义下索引的倒置。

举个例子: 我们用不同的数字索引不同的句子(比如以下三句在文本中是按照0,1,2的顺序排列的)

0 : "I love you"

1 : "I love you too "

2 : "I dislike you"

如果要用单词作为索引,而句子的位置作为被索引的元素,那么索引就发生了倒置:

"I" : {0,1,2}

"love" : {0, 1}

"you" : {0,1,2}

"dislike" : {2}

如果要检索 "I dislike you" 这句话,那么就可以这么计算 :  {0,1,2} ^ {2} ^ {0,1,2} (这里"^"代表交集)

时间: 2025-01-17 20:40:29

什么是反向索引的相关文章

Oracle索引总结(三)- Oracle索引种类之反向索引

一 反向索引 1.1 反向索引的定义 反向索引作为B-tree索引的一个分支,主要是在创建索引时,针对索引列的索引键值进行字节反转,进而实现分散存放到不同叶子节点块的目的. 1.2 反向索引针对的问题 使用传统的B-tree索引,当索引的列是按顺序产生时,相应的索引键值会基本分布在同一个叶块中.当用户对该列进行操作时,难免会发生索引块的争用. 使用反向索引,将索引列的键值进行反转,实现顺序的键值分散到不同的叶块中,从而减少索引块的争用. 例如:键值1001.1002.1003,反转后1001.2

Mapreduce 反向索引

反向索引主要用于全文搜索,就是形成一个word url这样的结构 file1: MapReduce is simple file2: MapReduce is powerful is simple file3: Hello MapReduce bye MapReduce 那么经过反向索引后就是: Hello     file3.txt:1; MapReduce     file3.txt:2;fil1.txt:1;fil2.txt:1; bye     file3.txt:1;  is    

CM开发日志(四) - Solr 反向索引

什么是反向索引?(很多文章也称为倒排索引) 索引技术主要有以下3种: 反向索引,后缀数组和签名文件.其中, 反向索引技术在当前大多数的信息检索系统中得到了广泛的应用, 它对于关键词的搜索非常有效, 在lucene中也是使用的这种技术.后缀数组技术在短语查询中具有很快的速度, 但是这样的数据结构在构造和维护时都比较复杂一些.签名文件技术在20世纪80年代比较流行, 但是后来反向索引技术逐渐超越了它. 反向索引是目前搜索引擎公司对搜索引擎最常用的存储方式, 也是搜索引擎的核心内容, 反向索引源于实际

Oracle 反向索引(反转建索引) 理解

一 反向索引 1.1 反向索引的定义 反向索引作为B-tree索引的一个分支,主要是在创建索引时,针对索引列的索引键值进行字节反转,进而实现分散存放到不同叶子节点块的目的. 1.2 反向索引针对的问题 使用传统的B-tree索引,当索引的列是按顺序产生时,相应的索引键值会基本分布在同一个叶块中.当用户对该列进行操作时,难免会发生索引块的争用. 使用反向索引,将索引列的键值进行反转,实现顺序的键值分散到不同的叶块中,从而减少索引块的争用. 例如:键值1001.1002.1003,反转后1001.2

其他 - 简述 反向索引

1. 概述 概述 简述 反向索引 也有人叫 倒排索引 场景 经常会出现在 搜索引擎 的后面 2. 生活中的索引 目录 格式 # 章节内容在哪一页 <content> -> <page> 字典 # 单词在哪一页 <word> -> <page> 思路 内容 在 哪个位置 3. 搜索引擎生成 倒排索引 的内容 英文 索引 生成 输入 文本 过滤 例如 html 标签 分词 时态 单复数 过滤 过滤一些没哈用的词 比如: a, an, the, thi

Solr4.8.0源码分析(10)之Lucene的索引文件(3)

Solr4.8.0源码分析(10)之Lucene的索引文件(3) 1. .si文件 .si文件存储了段的元数据,主要涉及SegmentInfoFormat.java和Segmentinfo.java这两个文件.由于本文介绍的Solr4.8.0,所以对应的是SegmentInfoFormat的子类Lucene46SegmentInfoFormat. 首先来看下.si文件的格式 头部(header) 版本(SegVersion) doc个数(SegSize) 是否符合文档格式(IsCompoundF

悟空分词的搜索和排序源码分析之——索引

转自:http://blog.codeg.cn/2016/02/02/wukong-source-code-reading/ 索引过程分析 下面我们来分析索引过程. // 将文档加入索引 // // 输入参数: // docId 标识文档编号,必须唯一 // data 见DocumentIndexData注释 // // 注意: // 1. 这个函数是线程安全的,请尽可能并发调用以提高索引速度 // 2. 这个函数调用是非同步的,也就是说在函数返回时有可能文档还没有加入索引中,因此 // 如果立

索引与like优化

未建索引 mysql> alter table modulestatus drop index imei;Query OK, 457922 rows affected (4.29 sec)Records: 457922 Duplicates: 0 Warnings: 0 mysql> SELECT count(*) from modulestatus where imei like '1%';+----------+| count(*) |+----------+| 270 |+-------

高性能的索引策略(上)

高效的选择和使用索引有很多方式,其中有些事针对特殊案例的优化方法,有些则是针对特定行为的优化,使用哪个索引,以及如何评估选择不同索引性能影响的技巧,则需要持续不断的练习.接下来将介绍如何高效的使用索引. 独立的列 我们通常会看到一些查询不当的使用索引,或者是的MySQL无法使用已有的索引.如果查询中的列不是独立的,则MySQL就不会使用索引.“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数. 例如,下面的这个查询无法使用actor_id的索引: SELECT actor_id FR