百度空间 | 百度首页 
 
查看文章
 
ftp搜索引擎的设计和实现:4.8 建索引过程
2007-03-21 21:53

欢迎转载,但请注明出处,并给活力链接。谢谢

     现在该来讲建立倒排索引的具体流程和方法了。有了这一章中前面几节的基础,理解这个就变得非常容易。

     在搜集程序运行完以后,我们的目录下各个站点对应了path、attr、info三种文件。
     首先,程序扫描所有的站点,并按字母顺序排序,写到一个叫scanedSite的文件中。

     然后主进程fork出两个子进程,一个子进程负责按顺序扫描attr文件;另一个子进程负责扫描path文件。两个子进程互不干扰,同时进行。主进程等待两个子进程结束。

     负责扫描attr文件的,逐行扫描,每一行对应生成一个Fileinformation结构,以二进制写入到inforindex文件中。
     下面来讲讲Fileinformation结构体中时间这一项是如何表示的。“时间”这一项的定义为uint createdtime:15; 是个占15bit的整型。其中高5位表示真实的年份减去1970对应的整数,低五位表示日,中间四位表示月份。比如如果一个时间为2005-3-4,则高五位是35(2005-1970),中间四位是3,低五位是4.
     每扫描完一个attr文件,把扫描该attr文件时写入到inforindex文件中的起始索引和终止索引写到info文件中。

     负责扫描path文件的子进程,即扫描path文件中不以”/”开头的每一行(以”/”开头的并不是真正的文件,而是路径),逐一扫描文件,生成双字母倒排索引,写入到对应的索引文件中。生成索引的过程中要注意文件名中含有连续两个中文字符的问题,4.3节已有详细过程及原因,这里不再赘述。

     最后,当主进程等到两个子进程都退出后,计算各个文件夹的大小。(4.6节介绍)


类别:ftp搜索引擎 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2007-03-22 09:33 | 回复
不知更新索引的机制是如何的
 
2
2007-04-01 20:04 | 回复
主要是增量索引技术,这里还没有做上
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu