600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【北大天网搜索引擎TSE学习笔记】第2节——重要数据文件介绍

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

时间:2022-10-31 12:01:47

相关推荐

【北大天网搜索引擎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 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 11:17:49 GMT

Connection: keep-alive

Connection: Keep-Alive

Content-Length: 38088

Content-Type: text/html; Charset=gb2312

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

Set-Cookie: ASPSESSIONIDSSTRDCAB=IMEOMBIAIPDFCKPAEDJFHOIH;path=/

Cache-control: private

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN""/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的编码配置问题的详细介绍,可以参考这篇文章(/os/11/110622.html)。

By:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。