InfoMall数据检索服务的设计以
及全文检索系统的初步实现
杨志丰
InfoMall万维网信息博物馆
中国万维网历史信息的存储和展示系统
维护2001年以来从中国万维网上搜集的近12
亿篇网页(约20TeraByte)
以每月1000万的速度增长
现有服务及问题
目前提供三种服务
根据URL检索历史网页
提供人工整理的历史事件专题回放
免费提供网页和日志数据
局限
访问途径单一(只能通过URL)
整理历史事件专题需要大量的人工工作
只能获得某个时间段搜集的全部网页,且免费数据
的获取需要很多人工维护工作
InfoMall数据检索服务
目的
整合现有服务
通过统一的数据访问接口,提供更加丰富,更加自
动和便利的数据服务
InfoMall数据检索服务
提供以InfoMall历史网页文档为核心数据,以内容、
空间、时间为查询纬度的,面向高层应用的客户服
务器体系结构的数据检索服务。
“三维”的数据模型
检索服务原语
Augmented BNF 语法定义(部分摘录如下)
<query> = “select” <data-type> “from” <data-repository>
“where” 1*<conditions> [“max” <maximum-item-number>]
<conditions> = <content-condition> / <time-condition> /
<location-condition>
例子
select Web-pages from :1234
where content contains 民主 time between 1997-02 to
2005-02 location at GEO: 150000 location at URL:
*.”
:1234
系统组成
全文检索系统
索引构建流程
(1)从文档源取得文档
(2)对文档进行分词得到<DocID, Term, Positions>
三元组
(3)查看词典,把新出现的索引词合并到词典中,
得到<DocID, TermID, Positions>
(4)当<DocID, TermID, Positions>三元组的数量恰
好填满内存时,对整个三元组集合执行快速排序
(5)使用“游程编码”处理递增排序的三元组,然
后编码压缩,输出到临时顺串文件(run file)
(6)对所有顺串文件执行多路归并,结果输出为最
终索引文件
(7)将最终得到的词典存入文件
索引压缩
目的
减少索引数据空间
提高索引构建的速度
方法
第一步,游程编码,也就是把递增整数序列变换为
差分序列(原来相邻整数之间的增量序列)
第二步,采用某种编码方法对整数进行编码
编码方法
统计方法
哈夫曼编码(Huffman coding)
算术编码(arithmetic coding)
特定分布的ad-hoc编码
Unary Code (Pr[x]=2-x )
Delta Code
Golomb Code
字典方法
Ziv-Lempel编码
实验结果
本文贡献
设计了一个服务:如何利用宝贵的历史网页数
据提供公共信息服务以充分发挥信息作为研究
工作基础设施的作用
设计和实现了全文索引系统:重点讨论了利用
压缩技术减少全文索引的倒排文件索引的大小,
为海量历史网页数据的检索服务提供现实可行
的基础设施保障
谢谢!