荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: PhilCF (起床.挂站.TSG.下站.睡觉), 信区: NetResource
标  题: 毕业论文四、b数据库功能和结构说明[ZZ]
发信站: 荔园晨风BBS站 (Tue Jun 25 19:11:22 2002), 转信

发信人: chenhua (陈华), 信区: FtpSearch
标  题: 毕业论文四、b数据库功能和结构说明
发信站: 天网搜索论坛 (Wed May 29 22:32:34 2002)

b)      数据库功能和结构说明


i.      文件类型库

    为了进行文件按扩展名分类,建立了文件类型数据库。它对每类文件给于一个编号
以及属于该类型的所有扩展名。目前各分类的扩展名包括:

1)图象:jpg,  gif,  bmp,  jpeg,  pcx,  tif,  tiff,  wmf,  psd,  tga,  pic,
 png,  pcd,  dib,  rle,  iff,  lbm,  ilbm,  jpe,  jif,  dcx,  ico

2)声音:mp3,  wav,  cda,  mid,  au,  mp1,  m3u,  mjf,  as,  voc,  xm,  s3m,
 stm,  mod,  dsm,  far, ult, mtm, mp2, mpa, mpga, 669, aac, mp4, vqf, pls,
xpl, lrc, rmi, midi, snd, aif, aifc, wma, wax, aiff, rms

3)视频:mpeg, mpg, avi, rm, swf, ram, rmm, ra, rmj, vob, asf, asx, wvx, wmv,
 wm, m1v, wmp, ivf, smi, mpv2, mp2v, smil, rp, mpv, ssm, rv, mpe, rf, rt

4)压缩:zip, arj, gz, tar, tgz, cab, z, arc, b64, bhx, hqx, lzh, mim, taz,
tz, uu, uue, xxe

5)文档:txt, doc, htm, html, ppt, exl, mdb, asp, asa, php, js, rtf, wri

6)程序:exe, com, bat, dll, class, out, ocx

7)源代码:cpp, c, h, hpp, pas, bas, java, asm, perl, inc, cxx, tli, tlh,
hxx, inl, def, odl, idl

100)目录。目录类型由文件条目属性决定。

0)其它。所有不在上述范围内的文件归类到其它中。

        文件类型库保存在<respath>\FileType.txt。格式上采用文本格式,例如:
0       图象  photos  jpg,  gif,  bmp,  jpeg
1       声音  auidos  mp3,  wav,  cda,  mid
这个库只在数据搜集程序中用到。


ii.     站点列表库

    站点列表库保存在<respath>下的sites.txt里,每一行作为一个站点地址以文本格
式保存。站点列表来源于站点获得程序扫描得到的IP地址列表<respath>\ipsites.txt
和手工产生的有域名的地址列表<respath>\namesites.txt经过CheckSite.exe程序合成
产生。站点列表库用于确定搜集程序搜集范围和建库程序的建库范围。目前站点列表库
大约有三千多个站点地址。


iii.    素材数据库

    素材数据库是由搜集程序产生的简单搜集结果。搜集程序启动多个线程同时访问多
个ftp站点,并行的将各个站点得到的文件条目经过简单的加工用存放在各个站点对应
的素材库里。比如ftp.pku.edu.cn站点的文件条目信息保存在
<respath>\resource\ftp.pku.edu.cn文件内。每个文件条目按文件名、最后修改时间
、文件大小、站内路径、文件类型以一行行字符串的形式保存在对应的素材库里。例如


halfsize.jpg                            文件名
19700101                             最后修改时间
13421                                文件大小(byte)
/incoming/tools/htmledit/                 站内路径
1                                    文件类型(图象)

    由此可见,素材库是一个非结构化的数据库,这种结构能够适应长文件名情况,而
在空间利用上也相对比较充分。而如果采用固定大小的结构化数据库,则文件名和路径
的长度就不得不作限制,最终导致不能正确访问下载地址或者可能浪费大量的存储空间



iv.     索引数据库

    索引数据库是直接用于搜索的数据库,它关系到搜索服务的速度与效率。它由用于
显示的Display库、用于过滤的Content库和用于匹配字串的Index库组成。我们采用双
字母倒排表的方式组织索引表。Index数据库中包含256*256个双字母索引文件,每两个
字母对应一个索引。其中Content库和Index库常驻内存,Display库只在输出结果时才
被打开读取。对每一个FTP站点的文件条目,将其文件信息如创建时间,大小,文件类
型等非字符串定长数据以及一个指向显示文件中对应的文件名和路径字串起始位置的偏
移指针(DisplayOffset)记录在Content库里,由数据在Content库的位置获得该文件
的唯一编号(ID)。同时在文件名的每两个连续字母对应的双字母索引里生成以ID为高
24位,该双字母组在文件名内的偏移为低8位的32位索引项。

Content 库是结构化的库,保存在<basepath>\content.dat里,它的条目结构为

typedef struct
{
 char filetype;   //文件类型
 long filesize;   //文件大小
long[4] site;     //所在站点编号
long createdtime;  //创建时间,如1999年2月为: 199902
unsigned char filenamelen;  //文件名长度
long displayoffset;  //对应的字串表示在DISPLAY库里的偏移
}FileContent;//
Index 库包含256*256个双字母倒排表,保存在文件<basepath>\index.dat里,它的结
构为

_int32 indexoffset[256*256+1]; //每个双字母表在库里的偏移和库结尾的偏移
_int32 index0_0[….];         //0号字母和0号字母组成的索引表
_int32 index0_1[….];         //0号字母和1号字母组成的索引表
_int32 index0_2[….];         //0号字母和2号字母组成的索引表

….
_int32 index255_255[….];     //255号字母和255号字母组成的索引表

每个双字母倒排表的长度可以由indexoffset的相邻两项计算得到。倒排表由一系列32
位结构组成,这个32位结构为

typedef struct
{
_int32 ID:24;       //ID由该文件条目在Content库的编号决定
_int32 OffsetInFileName:8; //双字母在文件名里的偏移
} IndexItemStruct;

Display库为非结构化库,以适应无限长度文件名和路径名情况。Display库保存在
<basepath>\display.dat里,它的每个条目的结构定义为

halfsize.jpg                            文件名
19700101                             最后修改时间
13421                                文件大小(byte)
//ftp.pku.edu.cn/incoming/tools/htmledit/    Ftp路径
1                                         文件类型(图象)


v.      快捷方式数据库

    快捷方式数据库由三个子库组成,用户注册查询项的临时库:TmpFileItem,快捷
方式分类层次库:TypeList,快捷方式条目库:FileItem。所有的快捷方式数据库都在
Microsoft SQL Server 7.0系统上实现。

临时库TmpFileItem的结构:

IID  int            //用于区分不用项的系统自动ID
Name char[64]       //用户注册查询项的名字,比如 “rm电影”
ToMatch char[254]  //用户注册查询项的内容,比如 “word=*.rm”
TypeID  int       //该注册项的类别号,比如“电影、MTV”类

快捷方式条目库FileItem的结构:

PID int           //该查询项的类别号,比如“电影、MTV”类
Name char[64]             //查询项的名字,比如 “rm电影”
ToMatch char[254]          //查询项的内容,比如 “word=*.rm”
DownloadCount int          //用户点击该条目的次数
IID int                    //用于区分不用项的系统自动ID

快捷方式分类层次库TypeList的结构:

TypeID int      //类别的编号,如果整百则为主类,否则为子类
Name char[64]            //类别的名称

例如:
100     电影、MTV
101     爱情
102     动作
103     MTV

--

※ 来源:.天网搜索论坛 http://binglebbs.dhs.org[FROM: 162.105.80.74]

--

      WELCOME TO PC's Home  HTTP://192.168.48.84

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.48.84]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店