百度空间 | 百度首页 
 
查看文章
 
ftp搜索引擎的设计和实现:4.9 建立倒排索引模块代码结构
2007-04-02 20:29

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

      在这一部分的最后一节,来介绍一下W-cyclone ftp搜索引擎的“建立倒排索引模块”的代码结构。
该模块的代码包括以下文件:


     buildindex.cpp:包含该模块的main函数,首先fork出两个子进程,一个子进程负责按顺序扫描attr文件;另一个子进程负责扫描path文件。等到两个子进程成功退出后,计算各个文件夹的大小。

     calcdirsize.cpp:计算各个文件夹大小的类的实现。(参见4.6节)

     fileinforindex.cpp:负责扫描attr文件的类的实现。按顺序逐行扫描各attr文件,每一行对应生成一个Fileinformation结构,以二进制写入到inforindex文件中。

     filenameindex.cpp:负责扫描path文件的类的实现。按顺序逐一扫描path文件,生成双字母倒排索引,写入到对应的索引文件中。

     需要说明的是,按上文介绍的双字母倒排来建立索引,程序并不支持插入、更新和删除索引。要想更新索引,只有重建所有索引。好在该搜索引擎是用于搜索文件名的ftp搜索引擎,索引的大小以及建索引的时间在可以接受的范围之内。

     最后介绍一个脚本dir.sh。该脚本用于在一个指定目录内生成256个文件夹,文件夹名为0-255.或者在一个指定目录内删除文件夹名为0-255的所有目录。也许你已经想到了,它用于在重建索引时删除整个索引目录和创建整个索引目录。


类别:ftp搜索引擎 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2007-04-05 12:41 | 回复
fileinforindex.cpp是用来生成inforindex的,但是检索的时候,直接使用256*256的文件不就可以了吗,为什么还要inforindex呢?
 
2
2007-04-05 21:53 | 回复
Fileinformation数组实际上是放在文件中的,也就是inforindex。而不是放在内存中。 检索256*256个文件,只能得到一些index,这些index对应Fileinformation数组,从Fileinformation数组中得到具体的文件信息
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu