文件快速搜索引擎本科论文.docx

上传人:b****1 文档编号:2452350 上传时间:2022-10-29 格式:DOCX 页数:29 大小:278.87KB
下载 相关 举报
文件快速搜索引擎本科论文.docx_第1页
第1页 / 共29页
文件快速搜索引擎本科论文.docx_第2页
第2页 / 共29页
文件快速搜索引擎本科论文.docx_第3页
第3页 / 共29页
文件快速搜索引擎本科论文.docx_第4页
第4页 / 共29页
文件快速搜索引擎本科论文.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

文件快速搜索引擎本科论文.docx

《文件快速搜索引擎本科论文.docx》由会员分享,可在线阅读,更多相关《文件快速搜索引擎本科论文.docx(29页珍藏版)》请在冰豆网上搜索。

文件快速搜索引擎本科论文.docx

文件快速搜索引擎本科论文

 

文件快速搜索引擎

 

院系北方软件学院

专业计算机科学与技术

班号4233302

学号200427333207

姓名胡启良 

指导教师张恒

 

沈阳航空工业学院

2006年6月

摘要

众所周知,我们生活在信息大爆炸时代,每天的信息量太大了,足以将所有人湮没。

在如此庞杂的新鲜信息与海量信息面前,人们如何找到适时有用或急需的信息,搜索引擎如此应运而生。

本文主要论述了使用倒排文件的方法建立一个文件快速搜索引擎。

详细阐述了整个应用系统的设计思路,及毕业设计课题的选题意义。

给出了研究开发的过程,以及对设计思路和实现细节的考虑,并对各部分周期进行了详尽的分析和描述,最终达成一个完整的设计方案。

系统开发工具为VisualC++6.0,平台为WINDOWSXPProfessional。

关键字:

倒排文件,搜索引擎

 

 

Abstract

Aseveryoneknows,weliveinaneraofinformationexplosion,thedailyvolumeofinformationistoogreat,tobealllost.Inthecaseoffreshinformationandstockinformationutilizedbefore,peopleneedtofindtimelyandusefulinformation,whichcansearchit.Searchenginessuchcameintobeing.

Thisarticlediscussestheuseofthemainmethodsofcreatingadocumentwouldplatoonrapiddocumentsearchengines.Detaileddesignoftheentireapplicationsystem,theselectionofsubjectsandtopicsfromdesignsignificance.Giventheresearchanddevelopmentprocess,andtoconsiderthedetailsofthedesignandrealizationofideasandthecycleofadetailedanalysisanddescription,theultimategoalofacompletedesign.

VC++6.0toolsforsystemdevelopment,theplatformforWindowsXPProfessional.

Keywords:

opposingplatoondocuments,thesearchengine

目录

摘要Ⅰ

AbstractⅡ

目录Ⅲ

第一章引言1

1.1本课题的研究背景1

1.1.1索引文件构成1

1.1.2索引文件的存储2

1.1.3索引文件的操作3

1.1.4利用查找表建立多级索引3

1.2设计目标4

第二章关键问题分析5

2.1索引算法分析5

2.2.1散列文件的组织方式5

2.2.2多关键字文件6

2.2.3多重表文件7

2.2.4倒排文件7

2.2查找算法分析10

2.2.1顺序查找10

2.2.2二分查找11

2.2.3分块查找15

第三章系统设计17

3.1程序的总体框架17

3.2索引建立模块分析18

3.3程序总体模块图19

第四章详细设计20

4.1深入剖析倒排文件索引算法20

4.2查询的实现23

4.3界面设计25

第五章 系统性能分析及测试30

5.1系统性能分析30

5.1.1系统稳定性分析30

5.1.2系统安全性分析30

5.1.3系统实用性分析30

5.2系统测试31

5.2.1测试环境31

5.2.2测试数据的建立31

第六章结论与展望32

6.1结论32

6.2展望32

致谢33

参考文献34

 

第一章引言

1.1本课题的研究背景

社会发展到今天,已经进入了计算机的时代。

在各行各业的发展中,只要是涉及到信息管理范围的领域,都需要由计算机来完成。

原因当然很简单,因为计算机处理速度快,可靠性高,而且易于维护。

人们对计算机如此依赖,主要是因为近年来计算机硬件的发展水平飞速增加。

对硬件方面了解的人都知道,计算机硬件的发展基本上是一年乘一个倍数的增长,但是这种发展势头会一直这样持续吗?

答案是肯定的,不。

因为任何事物都是有极限的。

计算机也一样。

CPU的运算速度现在来讲基本上已经快到极限了,但人们对它的速度要求还远远不仅如此。

这就出现了一个问题,既然硬件无法提高,而人的要求又无法满足,那应该怎么办呢?

办法是有的,运用好的算法,可以节约硬件资源,提高运算效率,一个很优秀的算法可以大大提升这些。

文件内容查找是目前人们经常做的操作,很多软件都提供了文件内容查找的功能,如:

Offcie办公软件、记事本、浏览器软件、写字板软件等。

但是这些软件本身所带的查找功能多数是基于模式匹配(逐个字符比较)的方式制作的,当处理大规模文件时查询效率很低。

在这样的背景下,我们提出了本课题,希望通过本题的研究,开发出一种文件内容快速查找工具,从而提高查找效率。

如果要提高查找效率,必须对原文件建立索引文件,下面简单介绍一下索引文件的信息。

1.1.1索引文件构成

1.索引文件

   索引文件由主文件和索引表构成。

  ①主文件:

文件本身。

  ②索引表:

在文件本身外建立的一张表,它指明逻辑记录和物理记录之间的一一对应关系。

2.索引表组成

索引表由若干索引项组成。

一般索引项由主关键字和该关键字所在记录的物理地址组成。

索引表必须按主关键字有序,而主文件本身则可以按主关键字有序或无序。

3.索引顺序文件和索引非顺序文件

(1)索引顺序文件(IndexedSequentialFile)

   主文件按主关键字有序的文件称索引顺序文件。

   在索引顺序文件中,可对一组记录建立一个索引项。

这种索引表称为稀疏索引。

(2)索引非顺序文件(IndexedNonSequentailFile)

   主文件按主关键字无序的文件称索引非顺序文件。

   在索引非顺序文件中,必须为每个记录建立一个索引项,这样建立的索引表称为稠密索引。

   ①通常将索引非顺序文件简称为索引文件。

   ②索引非顺序文件主文件无序,顺序存取将会频繁地引起磁头移动,适合于随机存取,不适合于顺序存取。

   ③索引顺序文件的主文件是有序的,适合于随机存取、顺序存取。

   ④索引顺序文件的索引是稀疏索引。

索引占用空间较少,是最常用的一种文件组织。

   ⑤最常用的索引顺序文件:

ISAM文件和VSAM文件。

1.1.2索引文件的存储

1.索引文件的存储

   索引文件在存储器上分为两个区:

索引区和数据区。

索引区存放索引表,数据区存放主文件。

2.索引文件的建立

   建立索引文件的过程:

  

(1)按输入记录的先后次序建立数据区和索引表。

其中索引表中关键字是无序的

  

(2)待全部记录输入完毕后对索引表进行排序,排序后的索引表和主文件一起就形成了索引文件。

 

1.1.3索引文件的操作

1.检索操作

检索分两步进行:

  ①将外存上含有索引区的页块送入内存,查找所需记录的物理地址

  ②将含有该记录的页块送入内存

 需要注意的是:

  ①索引表不大时,索引表可一次读入内存,在索引文件中检索只需两次访问外存:

一次读索引,一次读记录。

  ②由于索引表有序,对索引表的查找可用顺序查找或二分查找等方法。

2.更新操作

(1)插入:

   将插入记录置于数据区的末尾,并在索引表中插入索引项;

(2)删除:

   删去相应的索引项;

需要注意的是:

在修改主关键字时,要同时修改索引表。

1.1.4利用查找表建立多级索引

1.查找表

   对索引表建立的索引,称为查找表。

查找表的建立可以为占据多个页块的索引表的查阅减少外存访问次数。

2.多级索引

   当查找表中项目仍很多,可建立更高一级的索引。

通常最高可达四级索引:

   数据文件一—索引表——查找表——第二查找表——第三查找表。

   ①多级索引是一种静态索引

   ②多级索引的各级索引均为顺序表,结构简单,修改很不方便,每次修改都要重组索引。

3.动态索引

   当数据文件在使用过程中记录变动较多时,利用二叉排序树(或AVL树)、B_树(或其变型)等树表结构建立的索引,为动态索引。

(1)树表特点

①插入、删除方便

  ②本身是层次结构,无须建立多级索引

  ③建立索引表的过程即为排序过程。

(2)树表结构选择

  ①当数据文件的记录数不很多,内存容量足以容纳整个索引表时,可采用二叉排序树(或AVL树)作索引;

  ②当文件很大时,索引表(树表)本身也在外存,查找索引时访问外存的次数恰为查找路径上的结点数。

采用m阶B-树(或其变型)作为索引表为宜(m的选择取决于索引项的多少和缓冲区的大小)。

(3)外存的索引表的查找性能评价

   由于访问外存的时间比内存中查找的时间大得多,所以外存的索引表的查找性能主要着眼于访问外存的次数,即索引表的深度。

1.2设计目标

本课题最终成果是一个可以实现快速文件内容查找的工具。

基本功能如下:

1、系统支持多文本文档的导入,是对多文件进行操作。

2、为了提高查询效率,必须建立索引文件。

本系统采用倒排文件的方法对原文件建立索引,索引文件与原文件之前用指针链接,查询时先在由键盘输入查找关键字,然后到索引文件的词文件中查找与查找关键字相同的字段,如果两者相同,通过链接的指针,可给出该词在原文中的位置,并将其前后约20个字符显示出来。

并给出该词在原文件中出现的频率。

3、本系统是英文类别的查找工具。

处理时词与词之间用空格与回车换行符做为隔符。

4、本系统是对常用词表进行查找的工具,因此词库文件由手动添加。

这样可以过滤一些没有意义的词。

5、由于是常用词表查找,所以本系统查找算法采用顺序查找算法实现。

6、如时间充裕,可考虑扩充词库文件为跟据导入文件自动建立,并分别建立顺序查找,折半查找及二分查找,比较其查询效率,择优用之。

第二章关键问题分析

2.1索引算法分析

2.2.1散列文件的组织方式

   散列文件是利用散列存储方式组织的文件,亦称直接存取文件。

即根据文件中关键字的特点,设计一个散列函数和处理冲突的方法,将记录散列到存储设备上。

散列表与散列文件比较如表2.1

比较项目

散列表

散列文件

存储单位

若干记录为一组

处理冲突办法

开放地址法、拉链法

拉链法

表2.1

1、基桶和溢出桶

   在散列文件的存储单位叫桶(Bucket)。

假如一个桶能存放m个记录,则当桶中已有m个同义词的记录时,存放第m+1个同义词会发生"溢出"。

需要将第m+1个同义词存放到另一个桶中,通常称此桶为"溢出桶"。

相对地,称前m个同义词存放的桶为"基桶"。

   

(1)溢出桶和基桶大小相同,相互之间用指针相链接。

   

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1