C#+Ajax站内搜索引擎系统的设计与实现+Lucene(2)
时间:2016-12-21 10:55 来源:毕业论文 作者:毕业论文 点击:次
目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化成文本,Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档,PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化后的内容交给 Lucene 进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使 Lucene 能够几乎适用于所有的搜索应用程序。 3系统的设计与实现 3.1需求分析 1、功能需求 本设计要实现的功能: 能够对Internet上的网页内容、标题、链接等信息按链式收集。 能够实现一定链接深度的网页收集,也就是在Internet上实现一定的URL级的数据收录。 对收集到的数据存入MSSQL Server 2000等关系型数据库中、或者存入文本文件中。 网站信息库中的信息会不断的变动,对收集到的数据需要定期的自动文护,做到定期的删除、从新收集。 对收集到的数据进行关键词的检索。 对检索出的数据要可定位性,即可以显示对数据的出处的链接。 实现中英文分词功能,能够按中文或者英文单词检索数据。 实现无刷新的显示搜索结果,对搜索用时的计算、显示,关键字高亮显示等。 2、性能需求 (1)精度: 对收集到的信息需要一定的完整性,即对链接层次里的每个链接页面都能够收集得到,并写入收集的存储区里。 对搜索出的内容需要包含有关键字信息 (2)时间特性要求: 数据收集时,因为是对Internet网上Web信息的收集,并且采用URL级链式的网页收集。收集数据时不能够出现无响应的等待。 搜索时响应时间应不超过3秒,无论搜索的记录多少。 (3)灵活性 具有良好的中文切词功能。 3.2方案设计 1、搜索引擎模型 模型包括爬虫、索引生成、查询以及系统配置部分。爬虫包括:网页抓取模块、网页减肥模块、爬虫文持模块。索引生成包括:基于文本文件的索引、基于数据库的索引。查询部分有Ajax、后台处理、前台界面模块。如图1所示。 图1 系统模块 2、模块设计 该模型按照功能划分为三个部分,一是爬虫抓取网页部分,二是从数据库建立索引部分,三是从前台页面查询部分。系统实现的主要业务(如图2)。 图2 功能流程图 3.3系统主要功能实现 1、网页爬虫搜索页面模块 在网页爬虫Console端应用程序里输入一个有效的URL后这部份就开始从第一个URL开始遍历相关的链接并把相关的信息写入到网页数据存储数据库里,然后就由索引生成程序读取网页数据存储数据库,对每条记录生成索引记录,存放于生成的索引库文件里。生成索引需要调用Lucene.Net类。索引生成后查询部分就能够在网页上输入关键字,对刚才抓取的信息查询。并可以定位到信息的出处。如图3所示。 写入 读取 生成 生成 (责任编辑:qin) |