文章阅读:全文索引技术时空效率分析

LIU Xiao-Zhu
PENG Zhi-Yong


根据全文索引实现技术的不同,将其分为三大类:

  • 索引技术 (倒排文件、签名文件 、后缀树与后缀数组)
  • 压缩与索引混合技术
  • 自索引技术(self-index technique).

研究表明 , 对于 1GB 的文本数据 ,

在 Solaris 系统、 Sun SPARC10 处理器及 256MB 内存的系统配置下,将每个实验执行 5 次取其平均值以减少外部因素的干扰 ,

采用 参数 b 取 5 时的 Golomb 编码 .

通过对倒排文件的倒排列表、索引词位置信息等进行压缩后与不采用压缩时相比 :

  • 存储空间减少了 5 倍、
  • 内存空间消耗减少了20 倍、
  • CPU 资源消耗减少至少 3 倍、
  • I/O 操作减少 5 倍、
  • 索引创建时间至少降低 2 倍 .

这使得倒排索引的时空效率得到了极大的提高 , 压缩的倒排索引得到了广泛的应用 .  

存储空间:倒排文件的存储空间低于原文本大小的15%。可见, space cost的劣势不在了!

索引创建 : 倒排文件的索引创建采用复杂性低的整数编码 , 因此创建速度快 ; 而后缀数组的创建速度一方面
依赖于所采用的压缩算法的复杂性 , 另一方面 , 为了实现由索引直接还原原始数据 , 必须附加很多其他信息 , 这
增加了索引创建的开销 .

索引更新维护 : 倒排文件支持索引的更新与维护 , 能够实现部分更新与索引重建 , 而且开销低于 45%; 但对
于后缀数组 , 当有新的数据加入或数据发生变化时 , 目前的技术还无法实现部分更新 , 只能对整个后缀数组进行
完全重排 , 并对定位函数进行重算等 . 因此难以实现索引的动态更新 , 尤其是对于大数据集 , 需要对后缀数组进
行完全重构 , 索引维护更新成本更高 .

排序查询 : 倒排文件支持排序查询功能且易于扩展 , 如支持语义相似度、文档结构查询与分离查询等功能 ;
后缀数组由于其紧凑的结构特性 , 只能完成完全匹配时的查找定位 , 难以支持相似度匹配、排序查询等功能 , 且
难以实现位置信息插入、文档结构查询、分离查询等功能 .

查询速度与定位开销 : 倒排文件的查询速度虽然有了很大提高 , 但是由于后缀数组采用基于定位函数的匹
配方式 , 能够快速计算出查询词的位置信息 , 因此与倒排文件相比 , 后缀数组在信息查询速度与定位开销上具有
明显的优势

先前的研究关注得更多的是压缩率 , 而往往忽略了索引的动态性 , 即压缩索引在查询、动态更新时是否需要先解压后才能实现相应的功能 .

而压缩率与动态性往往是相矛盾的 , 压缩带来的解码时间消耗 , 在一定程度上降低了索引的时间效率 .

自索引技术一定程度地克服了上述矛盾 , 从而使时空效率同时提高成为可能 .

目前的自索引可分为两种 : 基于倒排文件的自索引 以及 基于后缀数组的自索引. 这里只关心前者。

(原理略)

基于倒排文件的自索引的本质是以插入少量的辅助信息为代价 , 尽可能地减少压缩带来的解码时间消耗 ,
即通过辅助信息在不需要完全解码的情况下 , 实现信息的准确定位与查询功能 .

这种索引不仅具备复杂性低、简单且易于实现的优点 , 同时具有良好的查询性能和可扩展性 , 但其缺陷在于 :

一是当倒排文件中的位置信息列表被分成大量的小块时 , 插入的辅助信息不仅会导致大量的额外存储开销 , 同时由此产生的磁盘访问时间将超过压缩所带来的性能 ;

二是难以同时支持连接布尔查询与排序查询 ;

三是这种倒排文件自索引在文本显示功能上仍然依赖于原文本 .

总结与展望

索引与压缩技术的结合 , 极大地提高了索引的空间效率 . 通过压缩编码技术 , 倒排文件的大小将降低到原文本大小的 10%, 同时 , 内存空间、 CPU 资源、 I/O 操作、索引创建时间等性能都有了明显的改善 ;

压缩倒排索引仍然是应用最为广泛的索引 , 而且其应用面还在不断扩展 , 如支持结构化的 XML 查询、支持 P2P 的文本信息检索以及基于内容的多媒体音乐检索等新领域 ;

自索引技术作为索引与压缩技术的进一步发展 , 使得时间效率与空间效率的同时提高成为可能 , 一定程度地解决了时间与空间效率的矛盾问题 .

例如 , 对于同一数据集 , 采用基于倒排文件的自索引技术与不采用自索引技术相比 ,

  • 对于 5~10 个词的连接布尔查询 , 处理时间减小约 5 倍 ;
  • 对于排序查询 , 处理时间减小约 2~4 倍 .
  • 而插入忽略信息的大小约为原始文本大小的 2%.
  • 通过采用递归的方式对插入忽略信息的列表进行索引 , 并采用压缩技术 , 可以实现内存空间、存储空间与处理时间上的同时减小 .

[IR] Time and Space Efficiencies Analysis of Full-Text Index Techniques的更多相关文章

  1. [Algorithm] Fibonacci Sequence - Anatomy of recursion and space complexity analysis

    For Fibonacci Sequence, the space complexity should be the O(logN), which is the height of tree. Che ...

  2. 本人AI知识体系导航 - AI menu

    Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯   徐亦达老板 Dirichlet Process 学习 ...

  3. Disk Space Usage 术语理解:unallocated, unused and reserved

    通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如 ...

  4. Building the Unstructured Data Warehouse: Architecture, Analysis, and Design

    Building the Unstructured Data Warehouse: Architecture, Analysis, and Design earn essential techniqu ...

  5. [中英对照]Device Drivers in User Space: A Case for Network Device Driver | 用户态设备驱动: 以网卡驱动为例

    前文初步介绍了Linux用户态设备驱动,本文将介绍一个典型的案例.Again, 如对Linux用户态设备驱动程序开发感兴趣,请阅读本文,否则请飘过. Device Drivers in User Sp ...

  6. Low overhead memory space management

    Methods, apparatus, and systems, including computer programs encoded on a computer storage medium, m ...

  7. [20190918]shrink space与ORA-08102错误.txt

    [20190918]shrink space与ORA-08102错误.txt 1.环境:SCOTT@test01p> @ ver1PORT_STRING                    V ...

  8. 【443】Tweets Analysis Q&A

        [Question 01] When converting Tweets info to csv file, commas in the middle of data (i.e. locati ...

  9. 2016CVPR论文集

    http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...

随机推荐

  1. [Visual Studio] NuGet发布自定义包(Library Package)

    源文章:dax.net http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html 使用NuGet发布自己的类库包(Library Pa ...

  2. mongodb.副本集配置方法(使用keyfile认证部署)

    前提条件: - 已安装MongoDB, 版本以3.6为例 - 系统: Debian9 - 建议做副本集的话, 以3台以上为宜, 本文以1台主机2个服务为例 1.创建数据存放的目录, 并授权 sudo ...

  3. DNS解析全过程分析

    DNS解析过程 1.检查浏览器缓存中是否缓存过该域名对应的IP地址 用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的IP地址, 当用户再次访问的时候,浏览器就会从缓存中查找该域名对应 ...

  4. Sallen-Key Active Butterworth Low Pass Filter Calculator

    RC 2nd Order Passive Low Pass Filter The cut-off frequency of second order low pass filter is given ...

  5. Unity Shader-后处理:Bloom全屏泛光

    一.简介   今天来学习一下全屏Bloom效果,有时候也叫Glow效果,中文一般叫做“全屏泛光”,这是一种可以模拟出HDR的全屏后处理效果,但是实现原理与HDR相差很远,效果比HDR差一些,但是比HD ...

  6. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  7. LM && NTLM && ophcrack && RainBow table

    Windows密码的加密方式:Windows 主要使用以下两种(包含但不限于)算法对用户名和密码进行加密:分 别是LanManager(LM)和NTLM,LM只能存储小于等于14个字符的密码hash, ...

  8. 【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer

    一.前言 前面分析了LeaderZooKeeperServer,接着分析FollowerZooKeeperServer. 二.FollowerZooKeeperServer源码分析 2.1 类的继承关 ...

  9. 使用yocs_velocity_smoother对机器人速度进行限制

    yocs_velocity_smoother是一个速度.加速度限制器,用来防止robot navigation的速度/转速过快,加速度/快减速过大.Bound incoming velocity me ...

  10. Windows安装Flask Traceback (most recent call last):

    Exception: File "c:\users\appdata\local\programs\python\python36-32\lib\site-packages\pip\compa ...