倒排索引

来源:互联网 发布:php 积分商城 开源 编辑:程序博客网 时间:2024/05/29 19:57

举例说明倒排索引:


如上图所示是一个文档列表,在这个文档列表中我们可以看到如上所示的数据结构,pptid对象的是文档名称,

keyword对应的是文档中的属性值字段。在搜索过程中我们要检索出含有it的问文档,正向检索工作量与索引空间

的消耗是巨大的,那么怎样才能解决这样的问题,介绍一个数据结构倒排索引。


倒排索引(inverted index),也常被称为反向索引、植入档案或反向档案,是一种索引方法,被用来存储在在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。


如上图所示,我们把文章中的词,进行分词(切割,保留词,去停词),通过分词后的结果,把分出来的词作为文章的key,

把词所在的文章作为value,如上图所示。再通过把文章名转化为索引表的方式,简化索引。


这样就形成了我们所说的倒排索引。此时如果我们要去检索含有what is it的文章的话,

那么(1,1,2,3,4)And(1,1,2,3)And(1,2)取到他们的交集就可以快速检索出含有1,2的文章

这样就可以提高计算机的检索效率。


如果觉得还不过瘾,那么你可以统计出,词频,指定文章中这个词所在的位置,


如上图所示,可以用二元序偶对,标识哪篇文章,哪个位置。也可以用三元序偶对表示哪篇文章,几个,哪个位置。



原创粉丝点击