【北大天网搜索引擎TSE学习笔记】第2节——重要数据文件介绍

 

本节对系统中的主要的数据文件做一个简单的介绍,方便后面对系统源代码的阅读和对系统的理解。以下如不特别说明,所有路径或者文件都是相对于index目录而言的,即以index为当前目录。

(1)   ./ChSeg/words.dict

为词典文件,包含该系统支持的所有中文单字、词以及标点符号等,该词典是中文分词的依据,直接决定了分词的结果。该文件中每条记录为一行,包含三项数据,第一个为序号,第二个中文词,第三个参数统计的在语料中出现的次数(需要时可用于计算词频)。图1是words.dict文件的部分截图(注意:图中黄色的数字是vim显示的行号,不是文件的内容)。


图1

另外,./words.dict文件时一个链接文件,链接目标就是./ChSeg/words.dict。

(2)   ./Data/ Tianwang.raw.2559638448

为网页搜集模块抓取的原始网页数据,该文件以固定的格式(天网格式)的存储,有规定的存储格式,如下为天网格式原始网页数据文件的一部分。

        version: 1.0

        url:http://***.105.138.175/Default2.asp?lang=gb

        origin:http://***.105.138.175/

        date: Fri, 23May 2008 20:01:36 GMT

        ip:162.105.138.175

        length: 38413

 

        HTTP/1.1 200 OK

        Server: Microsoft-IIS/5.0

        Date: Fri, 23 May 2008 11:17:49 GMT

        Connection: keep-alive

        Connection: Keep-Alive

        Content-Length: 38088

        Content-Type: text/html; Charset=gb2312

        Expires: Fri, 23 May 2008 11:17:49 GMT

        Set-Cookie: ASPSESSIONIDSSTRDCAB=IMEOMBIAIPDFCKPAEDJFHOIH;path=/

        Cache-control: private

 

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

        <html>

        <head>

        ……

        version: 1.0

        url: ***

        ……

 

每一条网页记录由头部、网页数据和空行组成:头部+空行+网页数据+空行,如上面的例子中红色和黑色的部分为头部,蓝色的部分为网页数据。其中头部的第一条数据必须是版本号说明:version:1.0,所以该文件中version:1.0行是区分两条网页记录的分界处。关于原始网页数据文件的介绍可以参考《搜索》。

该文件是网页搜集模块抓取的结果,是后面进行网页分析、建立倒排索引的输入。

(3)   ./Data/Doc.idx 

为网页索引文件,这是《搜索》第四章第一节叙述的索引网页库的一部分。索引网页库的任务就是完成给定一个URL,在原始网页数据中定位到该URL所指向的记录。因为原始网页数据文件非常的大,如果不对其中的网页记录建立索引,而顺序查找的话,效率会非常的低。

网页索引文件中每条记录为一行,包含网页文件序号(在原始网页数据文件中存储的序号,记为docid)、该网页记录在原始网页数据文件中的偏移位置、网页内容的MD5摘要值。图2是Doc.idx文件的部分截图(注意:图中黄色的数字是vim显示的行号,不是文件的内容)。


图2

这样,有了该文件后,通过docid很容易在原始网页数据文件中找到网页记录获取网页数据。

(4)   ./Data/Url.idx.sort_uniq

为URL索引文件,是《搜索》第四章第一节叙述的索引网页库的一部分,该文件可以实现从URL找到对应的docid。该文件很简单,其中中每条记录为一行,包含URL的MD5摘要值和docid。为了能快速的对给定的URL找到对应的docid,需要根据URL摘要值进行排序,排序后可以通过二分查找较快的定位到相应的URL。所以Url.idx.sort_uniq文件是对URL去重,并以URL摘要值进行排序得到的URL摘要到docid映射的文件。图3是Url.idx.sort_uniq文件的部分截图(注意:图中黄色的数字是vim显示的行号,不是文件的内容)。


图3

这样,有了该文件后,如果想在原始网页数据库中获取该网页的数据就很方便了。首先对给定的URL求MD5摘要值,在该文件中找到其对应的docid,再通过Doc.idx文件得到该网页在原始网页数据库中的offset,然后就可以读取网页数据。

(5)   ./Data/ sun.iidx

为倒排索引文件,是该系统中非常关键的一个文件,倒排索引方法也是现代搜索引擎普遍使用的方法。说到倒排索引文件,其实还有正向索引文件,倒排索引文件就是在正向索引文件的基础上生成的。简而言之,正向索引文件是指网页文件到关键词的映射,而倒排索引文件是指关键词到网页文件的映射,关于二者的详细叙述可以参考《搜索》或网上的相关资料。

倒排索引文件中会记录所有在原始网页数据中出现的关键词(在本系统使用的字典中出现的字词,记为term)与该关键词出现的网页的映射。文件中每条记录为一行,包含term和term出现的网页的docid,term后以\t隔开,后面的docid顺序存放并以空格隔开。图4是sun.iidx文件的部分截图(注意:图中黄色的数字是vim显示的行号,不是文件的内容)。


图4

该倒排索引文件非常关键,后面的关键词检索就是在该文件中查找的,先找到关键词,再获得关键词出现的网页的docid,再去读取网页记录获取网页内容。

补充:

刚开始在vim中打开sun.iidx时,里面的中文关键词显示为乱码,这是因为编码格式的问题,可以配置一下当前用户的vim配置文件(~/.vimrc),在文件中加上以下几行:

        setfileencodings=utf-8,gb2312,gbk,gb18030

        set termencoding=utf-8

        set fileformats=unix

        set encoding=prc

关于vim的编码配置问题的详细介绍,可以参考这篇文章(http://www.2cto.com/os/201111/110622.html)。

 

By:

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值