




免费预览已结束,剩余31页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码: 10128学 号: 030291017 本科毕业设计说明书(题 目:面向主题的搜索引擎的设计与实现学生姓名:李玉姣学 院:信息工程学院系 别:计算机系专 业:计算机科学与技术班 级:计算机04-2指导教师:邢红梅 讲师 钱庭荣 工程师二八年六月相信自己 成就未来摘 要Internet已经成为目前世界上最大的信息资源库,但是网上信息资源纷繁芜杂,如何满足人们对快速、准确而全面获取信息的要求,已经成为摆在人们面前的一大难题。基于Internet的各类搜索引擎应运而生并得到了迅速发展。面向主题的搜索引擎是一种分类细致精确、更新及时的搜索引擎。随着Internet信息的爆炸增长以及信息多元化的发展,主题搜索引擎正成为研究热点与发展趋势。本课题就面向主题搜索引擎的关键技术进行了研究,并提出了一种基于Lucene的面向主题搜索引擎的解决方案。在本课题的条件下提出了面向服装主题的搜索引擎的设计思想、系统结构、搜索策略和搜索方式等。系统的实现技术主要是按照后台和前台来分的,在后台的设计中主要应用的技术有Luence和Heritrix;在前台的设计中主要是使用了MVC(Model View Controller)的设计模式和Struts框架以及Hibernate等技术。关键词:搜索引擎;主题;LuenceAbstractAt present, Internet is the largest info source in the World. However, information on the net is too unorderly to be obtained quickly and accurately. Under such circumstance, various search engine based on Internet information were widely and rapidly developed. The topic-specific search engine is characterized by accurate classification and timely upgrade. With explosive growth and multiplicate development of Internet information, the topic-specific search engine is becoming a key topic and tendency of search engine research.In this paper, the key technology of topic-specific search engine was studied to present designing idea, systematic structure, searching strategy, and searching method for clothes topic as well as a topic-specific search engine solution based on Luence. The main techniques for this topic were divided into foreground and background. The technique designing background mainly concerns Luence and Heritrix, and MVC (Model View Controller), Struts frame and Hibernate designing offoreground.Keywords:Search Engine; Topic-Specific; Luence目 录引 言1第一章 面向主题搜索引擎概述21.1 搜索引擎的概念和发展现状21.2 面向主题搜索引擎的发展趋势21.3 小结3第二章 面向服装行业搜索引擎的简介42.1 设计思想42.2 系统体系结构和流程42.3 小结6第三章 系统涉及的相关技术以及功能需求73.1 系统设计的相关技术73.1.1 Luence索引的建立73.1.2 网络爬虫技术93.1.3 解析网页技术103.2 系统功能需求103.2.1 网页信息抓取模块123.2.2 网页解析模块123.2.3 建立索引模块133.2.4 关键词词库过滤模块133.2.5 用户接口模块133.3 小结14第四章 系统数据库设计和详细设计154.1 数据库设计154.1.1 数据库需求分析154.1.2 数据字典154.1.3 数据库模型设计164.2 系统详细设计174.2.1 网络爬虫流程设计174.2.2 解析Html文件184.2.3 创建索引194.2.4 使用关键词词库过滤索引文件194.2.5 网站前端设计204.2 小结22第五章 系统实现235.1 系统功能实现235.1.1 系统后台功能实现235.1.2 系统前台功能实现245.2 小结26结 论27参考文献28谢 辞29引 言在最近几年的网络信息发展过程中,WWW(World Wide Web)已经成为一个全球性的网络信息系统,它不但成为企业不可缺少的组成部分,而且也已经走进了寻常百姓的家中。2000年4月在波士顿举行的第5届搜索引擎年会的会议报告指出当时的网页数目已经超过了10亿1。2006年7月19日发布的最新的中国互联网络发展状况统计报告指出,截至2006年6月30日,我国网民人数达到了12300万人,与去年同期相比增长了19.4%,其中宽带上网网民人数为7700万人,在所有网民中的比例接近2/34。随着网络覆盖范围的不断增大和网络技术的不断发展,网络上的信息变得异常庞大,这些信息资源包括不同的行业,不同学科,不同语言和地区等各种各样的内容。面对这样繁杂,混乱的信息,对于用户来说要查找自己想要的信息就会变得非常困难,搜索引擎的出现帮助用户解决了这一问题。但是许多大的综合性搜索引擎存在着索引的不及时性和返回结果的不准确性等缺点,难以满足一些客户对于某一方面的或者某一行业的信息需求。这些需求就为面向主题的搜索引擎的产生提供了条件。主题搜索引擎是面向某一个行业或者领域,通过建立相对固定的网络地址和搜索的关键词库,根据一定的条件有选择的抓取网络信息。面向主题搜索引擎与普通搜索引擎的区别在于它是围绕某一主题有选择性的抓取网络信息,而非完全遍历Web网页,这样获得的信息的准确率也就相对大大提高。本课题以设计实现了一个面向服装行业的主题搜索引擎为例,对面向主题搜索引擎的技术做了初步的研究和探索。第一章 面向主题搜索引擎概述1.1 搜索引擎的概念和发展现状搜索引擎(Seareh Engine)是一种用于帮助Internet用户查询信息的搜索工具,它以一定的策略在Internet中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的目的。随着网络与通信技术的迅速发展,Web 信息爆炸性的增长,互联网已经成为一个巨大的海量信息空间。如何快速、准确、方便的从如此庞大的信息库中获取自己需要的信息,是互联网用户面临的一个重要问题。搜索引擎就是随着Web信息的迅速增加,从1995年开始逐渐发展起来的技术。它是一种Web上的应用软件系统,以一定的策略在Web上发现和收集信息,对信息进行组织和处理,为用户提供Web信息查询服务。近年来,随着WWW技术的广泛应用,传统的通用搜索引擎正面临巨大的挑战。挑战之一是Web信息资源呈指数级增长,搜索引擎无法使所有网络页面索引化;挑战之二是Web信息资源动态变化,搜索引擎无法保证对信息的及时更新;挑战之三是传统的搜索引擎提供的信息检索服务,不能满足人们日益增长的对个性化服务的需要。面对这些挑战,各类适应特定人群需要的“专业搜索引擎”(Topic-Specific Search Engine)应运而生,并引起研究者的重视。以何种策略访问Web,以提高搜索效率,成为近年来专业搜索引擎研究的主要问题之一。因此, 建立面向特定专业领域的专题性搜索引擎已经成为搜索引擎新的发展趋势。搜索引擎是为满足人们对网络信息的搜索需求而新兴的一种网络工具,它利用网络自动搜索功能,对各种信息资源分门别类地进行标引、建库,并对信息进行理解、提取、组织和处理,从而起到信息导航的作用,帮助人们从不同形式的数字化信息中进行搜索。搜索引擎起源于传统的信息全文检索理论。狭义上的搜索引擎仅指基于因特网的搜索引擎;广义上的搜索引擎除此之外还包括基于目录的信息检索服务。搜索引擎的研究极具综合性和挑战性,它涉及到信息检索、人工智能、计算机网络、分布式处理、数据库、数据挖掘、数字图书馆、自然语言处理等多领域的关键理论和技术,其核心问题是数据库的规模、索引数据库的质量和标引质量7。1.2 面向主题搜索引擎的发展趋势面对海量的网络信息,越来越多的人开始关注如何能找到更加准确、有用的信息,因此查询到更加有用的信息成为搜索引擎的首要目标。而这正是综合型搜索引擎面临的问题所在。于是专为查询某一主题或学科信息的主题搜索引擎便应运而生,并成为搜索引擎发展的主要趋势之一。面向特定领域的搜索技术己经成为近几年来搜索领域里比较热的研究方向,因此把这种针对某一领域、某一特定人群或某一特定需求建立的搜索引擎称为主题搜索引擎。主题搜索引擎又称为专题搜索引擎、专业搜索引擎、垂直搜索引擎。它们专门采集某一学科、某一主题、某一行业范围的信息资源,并用更为详细和专业的方法对信息资源进行标引和描述,且往往在信息组织时设计利用与该专业密切相关的方法技术。这种搜索引擎专注于自己的特长和核心技术,保证了对该领域信息的完全收录与及时更新,在提供专业信息方面有着大型通用搜索引擎无法比的优势,成为搜索引擎发展的一个新趋势。它的服务对象通常是专业领域的研究人员。众所周知,每个专业领域都有专有的词汇和用语,主题搜索引擎使用与之相应的索引技术和检索语言,从而使在特定主题范围内的检索效果优于通用搜索引擎。主题搜索引擎因针对性强、目标明确和查准率高而成为获取专业信息的重要工具。常见的主题搜索的研究包括面向法律专业领域的,面向新闻的,面向图片或歌曲等等。其优点可以大致概括如下:(1)只要搜集某一特定学科领域或特定专题的Internet信息资源即可;(2)能够方便地进行搜集主题和学科的自定义配置;(3)采集的学科领域小,信息量相对较少,从而容易建立高质量、专业信息收录全、能够及时更新的索引数据库;(4)只涉及某一个或几个领域,词汇和用语的一词、一字多义的可能性降低,而且利用专业词表进行规范和控制,从而大大提高查全率和查准率;(5)信息采集量小,网络传输量小,有利于网络带宽的有效利用。(6)索引数据库的规模小,有利于缩短查询响应时间,还可以采用复杂的查询语法,提高用户的准确查询精度;(7)数据规模的降低,可以节省搜索引擎的投资成本,用普通的硬件投资即可建立高质、高效的主题搜索引擎。1.3 小结本章从搜索引擎的发展历史出发,分析了当前Internet上搜索引擎的概念、工作原理等,然后就搜索引擎当前的发展现状以及发展趋势做了浅析。本章还针对现有通用搜索引擎面临的种种问题,提出了主题搜索引擎存在的必要性和可行性。总结了主题搜索引擎的产生和优点。第二章 面向服装行业搜索引擎的简介2.1 设计思想面向服装搜索引擎的目的是为了提供一种从信息量具大的Internet上收集服装信息的新途径。与通用的网站搜索引擎相比,服装等行业的搜索引擎技术,无论从定位、内容、用户、还是市场策略等方面,都存在着一些不同。例如,经常浏览服装信息网页的用户,大都希望买服装,希望了解比通用网页更为详尽的信息,如品牌、样式等,而不是像综合性搜索引擎那样内容泛泛的介绍性网页。换句话说,服装行业的搜索引擎,用户需求较为明确,搜索范围相应比较小,提供的信息应该更为详尽,即必须能够向客户提供差异化的服务。这也是近十年里,针对这种具体的行业要求和不同主题,出现的一种较新的搜索技术垂直搜索引擎技术。面向服装的主题搜索引擎是在通用搜索引擎基础上,结合服装行业词典的专业搜索引擎,然后对相关网页信息进行识别,将网页信息以及从网页中抽取的信息存入数据库中。面向服装的主题搜索引擎从种子结点(URL)数据库中获得种子网页,作为搜索的起点,该数据库中的内容可以根据搜索的结果动态更新,也可以根据用户的需求定期手工调整和设置。在搜索引擎系统中,搜索Web并获取网页的任务是由一个软件蜘蛛来完成。它从一个或者几个“种子页面”出发,下载Web页面。与通用搜索引擎不同,我们服装行业专业搜索引擎服务于特定人群,其索引的内容只限于特定主题或专门领域,因而在搜索过程中无须对整个Web进行遍历,只需选择与主题页面相关的页面进行访问。搜索引擎抓取到的页面,作为我们获得的信息将下载保存到本地文件中。为了方便后面的索引建立以及数据库的建立。建立索引以后要利用词库对索引进行过滤,并把过滤后的结果保存到数据库中,以方便用户使用。2.2 系统体系结构和流程本系统是由信息抓取模块,解析网页以及建立索引模块,关键词词库过滤模块和用户访问模块组成,如图2-1所示。检索的服装信息关键字网络蜘蛛爬虫关键字抓取网页种子网页Internet网页信息抓取模块URL数据库信息索引模块专业词汇数据库DNS数据库网页存储本地文件HTML解析模块纯文本本地文件信息过滤模块网页信息数据库过滤结果数据库 用户图2-1 系统总体结构图在信息抓取模块,蜘蛛爬虫抓取到的有关服装的信息是来自Internet的,主要内容是Internet上的Html网页文件,对于其它类型的文件由于技术问题暂不予考虑。这里设置了几个种子结点用于网络蜘蛛抓取网页的开始结点。网页解析以及建立索引模块的功能就是,当信息从网络上爬取到以后,需要存放在本地的文件中。然后接着就是对本地文件中的Html格式的网页进行解析,把得到的有用信息保存在以”.txt”结尾的文件中。那么下一步的工作就是把得到的信息保存到数据库中并且建立索引。关键词词库过滤模块所要做的工作就是,对建立好的索引文件进行过滤,得到有用的网络信息,在这里需要对主题相关度进行设置,用于对客户搜索的信息进行排序。 用户访问模块即就是用户接口,这个模块的设计是使用MVC设计模式,用Struts框架+Hibernate实现的,当用户输入关键字搜索的时候,系统就会与词库进行对比,得到相应的结果。2.3 小结这一章主要就是介绍了系统的设计思想以及系统的体系结构和流程。在设计思想方面就系统的设计目的以及思路等做了简略的介绍,还有就是对于垂直搜索引擎的一些概念和技术进行了阐述。系统的体系结构是通过流程图的方式体现出来的,对于流程图中涉及到的各个模块的功能做了简单的介绍,关于这一方面的内容在后面的章节中还会有详尽的说明。第三章 系统涉及的相关技术以及功能需求3.1 系统设计的相关技术本次毕业设计使用的技术相对比较复杂,在这里就一些新的技术做简要的介绍。3.1.1 Luence索引的建立(1)Luence系统的组织结构Luence最初是Apache软件基金会Jakarta项目组的一个子项目,是一个完全开放源码的全文检索工具包。Lucene的系统结构具有强烈的面向对象特征。首先是定义了一个与平台无关的索引文件格式,其次通过抽象将系统的核心组成部分设计为抽象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象式的处理,最终达成了一个低耦合高效率,容易二次开发的检索引擎系统8。以下讨论Lucene系统的结构组织,并给出系统结构与源码组织图:图3-1 Lucene组织结构图从图3-1中可以清楚的看到,Lucene的系统由基础结构封装、索引核心、对外接口三大部分组成。其中直接操作索引文件的索引核心又是系统的重点。Lucene将所有源码分为了7个模块(在Java语言中以包来表示),各个模块所属的系统部分也如上图所示。需要说明的是org.apache.lucene.queryPaser是作为org.apache.lucene.search的语法解析器存在,不被系统之外实际调用,因此这里没有当作对外接口看待,而是将之独立出来。从面向对象的观点来考察,Lucene应用了最基本的一条程序设计准则:引入额外的抽象层以降低耦合性。首先,引入对索引文件的操作org.apache.lucene.store的封装,然后将索引部分的实现建立在 (org.apache.lucene.index)之上,完成对索引核心的抽象。在索引核心的基础上开始设计对外的接口。org.apache.lucene.seareh与。org.apache.lucene.analysis。在每一个局部细节上,比如某些常用的数据结构与算法上,Lucene也充分地应用了这一条准则。在高度的面向对象理论的支撑下,使得Lucene的实现容易理解,易于扩展Lucene在系统结构上的另一个特点表现为其引入了传统的客户端服务器结构以外的应用结构。Lucene可以作为一个运行库被包含进入应用本身中去,而不是作为一个单独的索引服务器存在。(2)Lucene索引的数据结构Lueene索引index由若干段(segment)组成,每一段由若干的文档(doeument)组成,每一个文档由若干的域(field)组成,每一个域由若干的项 (term)组成。项是最小的索引概念单位,它直接代表了一个字符串以及其在文件中的位置、出现次数等信息。域是一个关联的元组,由一个域名和一个域值组成,域名是一个字串,域值是一个项,比如将“标题”和实际标题的项组成的域。文档是提取了某个文件中的所有信息之后的结果,这些组成了段,或者称为一个子索引。子索引可以组合为索引,也可以合并为一个新的包含了所有合并项内部元素的子索引。从图3-2中我们可以清楚地看出,Lucene的索引结构在概念上即为传统的倒排索引结构。图3-2 索引结构图1)段(Segment)Lucene索引可能由多个子索引组成,这些子索引称为段(Segment)。每一段都是完整独立的索引,能被搜索。索引的方式是:为新加入的文档创建新段;合并已经存在的段。搜索时可能涉及到多个段或者多个索引,每一个索引又可能由一些段组成。2)文档(Document)Lucene用一个整形 (Interger)的文档号来指示文档。第一个被加入到索引中的文档就是0号,顺序加入的文档将得到一个由前一个号码递增而来的号码。在删除和插入时文档号是变的,所以在Lucene外部存储这些号码时必须小心。3)域(Field)域 (Field)是一个关联的元组,由一个域名和一个域值组成,域名是一个字符串,域值是一个项(term),“标题”和“标题”的项可以组成一个域。标题应该会被用在搜索结果里,因此它会被作为一个字段添加到文档对象里。这些字段可以被索引,也可以不被索引,而原始的数据也可以选择保存在索引里。保存在索引里的字段在创建检索结果页面的时候会很有用。域值也可以被切分(tokenized),这就意味着一个分析程序会将输入到域里的内容分解成搜索引擎能够使用的标记(token)。4)项(Term)项是最小的索引概念单位,它直接代表了一个字符串以及其在文件中的位置,出现次数等信息。3.1.2 网络爬虫技术网络爬虫,又称为蜘蛛(Spider),或是网络机器人,BOT等。爬虫的存在是为了使得搜索引擎有丰富的资源。Heritrix是一个由java开发的,开源的Web网络爬虫,用户可以使用它从网络上抓取想要的资源。Heritrix的难点在于运行它,由于需要许多的配置,因此稍有不慎就会失败,所以说运行Heritrix是一个难点。下面就Heritrix的运行步骤作以简单的介绍。(1)下载Heritrix的完整开发包,解压到本地指定的目录下。(2)在Heritrix目录下的conf中有一个perties配置文件,在该文件中配置了大量与Heritrix运行息息相关的参数,这些参数主要是配置了Heritrix运行时的一些默认工具类,WebUI的启动参数,用户名,密码,以及Heritrix的日志格式等。(3)在配置完以上的文件后,就可以运行Heritrix了。配置完Heritrix以后,就可以使用它来进行网页的抓取了,这里需要介绍的就是其相关的几个组件,Heritrix架构的相关组件有以下几种。(1)抓取任务CrawlOrder:它是抓取工作的起点。(2)中央控制器CrawlController:它是抓取任务的核心组件,因为它决定整个抓取任务开始和结束。它位于org.archive.crawler.framework中。(3)连接制造工厂Frontier:在Heritrix中,Frontier表示一种为线程提供连接的工具。它通过一些特定的算法来决定哪个链接接下来将被送入处理器链中,同时,它本身也负责一定的日志和状态报告功能。(4)用Berkeley DB实现的BdbFrontier:它是由美国Sleepycat公司开发的一套开放源代码的嵌入式数据库,为应用程序提供可伸缩的,高性能的,有事务保护功能的数据管理服务。(5)Heritrix的多线程ToeThread和ToePool:这是Heritrix提供的一个标准的线程池,它用于管理所有的抓取线程。在搜索引擎的开发过程中,使用一个合适的爬虫来获取所需要的网页信息是第一步,这一步是整个系统成功的基础。3.1.3 解析网页技术网页信息提取本身是一个很大的课题,涉及到人工智能,并行计算,机器学习等领域。但是由于本系统涉及的内容比较少,所以只关注了怎样提取到网页中系统所需要的内容。HTMLParser提供了两种访问结点的方法:Visitor模式和Filter模式。本次设计使用的是Filter模式。Filter模式通过设置一定的过滤条件,对每个节点进行过滤,返回一个符合规则的节点列表。org.htmlparser.filters包含所有已经实现的Filter类型,它们都实现了org.htmlparser.NodeFilter接口。至于使用者要选择怎样的NodeFilter,要根据自己的需要来确定。3.2 系统功能需求本系统的总体架构设计分为三层,分别是Web层,业务逻辑层和数据持久层。具体的流程如图3-3所示。(1)Web层:在这一层有两大功能,一个是实现网页的抓取,主要是使用Heritric技术实现。另外一个是用户接口,用户可以通过该部分与系统的后台进行交互。(2)业务逻辑层:这一层的功能就是实现一些业务逻辑操作,对得到的原始数据的处理都是在这一层实现的。(3)EIS层:所谓EIS层即就是数据持久层,在这一层主要就是与数据库进行交互,使用的技术是Hibernate技术。图3-3 系统架构图系统设计要实现的功能为一个面向服装的主题搜索引擎,可以在该系统中搜索到有关服装的一些信息。用户所查询到的这些信息是经过选取和处理过的,返回给用户的搜索结果中只包含有与服装有关的信息。图3-4 系统功能模块图经过调研和分析,本系统设计分为五大模块,即网页信息抓取模块,网页解析模块,信息索引模块,关键词词库过滤模块和用户接口模块。每一个模块都是独立的一部分,但是它们之间也存在一定的联系。前四个模块是系统的后台设计所要实现的,最后一个模块,也就是用户接口模块是系统的前台设计。如图3-4所示为系统的功能模块图。3.2.1 网页信息抓取模块本模块的功能是通过选取的种子结点,使用Heritrix蜘蛛爬虫抓取网页信息保存到本地文件中。(1)种子结点的选取面向主题的搜索引擎在这一方面的要求是与通用搜索引擎不相同的,由于访问人群的特殊性,对于种子结点的选取主要是要通过调查,尽量选取大型的,专业的官方网站作为种子,这样访问到的数据就会相对比较专业,本系统主要是选取了瑞丽,网易女人,中国品牌服装网等几个比较具有代表性的网页来抓取信息。(2)抓取策略算法抓取策略算法主要功能就是为了剔除一些与主题无关的网页,以便保证抓取的网页的准确性比较高,不会产生冗余的网络信息,影响后来的操作。在抓取策略的选取中,其根据的是具体的网页的结构,不同的结构对于抓取策略是不同的。(3)静态网页的存储在确定抓取策略之后,就是运行抓取网页了,抓取到的网页一般都是以.htm结尾的,即静态网页,对于抓取到的这些网页,需要保存到事先指定好的文件路径中,以便后面功能使用。3.2.2 网页解析模块静态网页解析模块的主要作用就是解析Html格式的文件,提取到有用的信息存储到数据库中,这个模块中使用到了一个新的技术就是Htmlparser,这是一个开源的Jar包,其中包含了许多接口和类用于解析Html格式的文件。(1)网页路径存储迭代在设计该模块的开始,首先要做的就是找到存储镜像文件的路径,对该路径中所有的文件作迭代,还要判断路径中是否还有目录,如果有,要继续进行迭代,最后找到所有的文件。(2)Html标签的选取本系统中的Html标签选取不是使用全文解析,而是选取了具有代表性的几个标签作为目标进行解析。首先选择的就是标签,在该标签中存放的是该网页的标题,即代表了一个网页的性质,就象一篇文章的标题一样。其次选择解析的就是标签,在这个标签中存放的内容大部分情况下就代表了该网页的内容检索,一个网页涵盖的内容,在该标签中就会抽取相应的关键词进行存放,类似于一篇文章关键字。最后选择解析的标签是,这个标签的内容就是对一个网页内容的简要描述。(3)解析网页的标签以及存储到本地文件中解析以上所选的标签使用的是Htmlparser中的方法和类,通过这些类和方法可以提取到有用的信息,存储到本地以.txt结尾的文件中。3.2.3 建立索引模块建立索引模块在本系统中属于一个过渡的模块,在模块中主要是使用了Lucene的索引优化和JE的分词技术。(1)索引结构的创建在创建索引结构以前,首先要做的一件事情就是把从网页中解析到的信息保存到数据库中。索引结构的创建有许多的方式,这里选择的是一个IndexWriter,一个Document,三个Field和若干个Term,这种方式的创建优点在于对索引便于管理。(2)建立索引文件索引文件的建立首先是从数据库中取到相应的信息进行处理,这里重点要强调的就是索引文件使用的分词技术,本系统使用的分词技术是JE分词技术,而不是Luence本身提供的分词技术。3.2.4 关键词词库过滤模块之所以使用该模块对索引文件进行过滤,是因为面向主题的搜索引擎必须有自己的专业词库,但是由于时间的关系,对于分词技术以及匹配算法都没有来得及去实现,而是直接使用了JE的中文分词技术和Luence提供的匹配算法。(1)遍历关键词词库在关键词词库中存放的是与服装有关的专业词汇,这里要对每一个词都要去搜索遍历,得到其相关的信息。(2)搜索索引文件以及计算主题相关度对于从数据库中取到的词,我们要对它也进行同样的分词技术进行分词,然后把它放到Term中,到索引文件中去搜索与该词相关的信息,在搜索索引文件的时候,会根据返回结果的不同,得到一个相关度的属性值,该属性值是用于搜索结果的排序,得到相应的信息之后,数据就会被存储到数据库中。3.2.5 用户接口模块用户接口模块是使用struts框架,MVC设计模式实现的,在该模块中,主要就是用户界面的设计和与数据库进行交互。当用户输入要搜索的关键字时,系统就会根据关键字去数据库中查找相应的信息,返回给用户。3.3 小结这一章主要介绍了系统所用到的一些相关技术和系统的功能需求。系统的相关技术主要介绍了Lucene和Heritrix。系统的功能需求部分主要介绍了系统每个模块所要实现的功能。第四章 系统数据库设计和详细设计4.1 数据库设计4.1.1 数据库需求分析数据库是一个系统的核心,对于系统设计来说需要研究数据库的分类、分级、模型和模式的结构和设计,数据库应该包括的属性,属性之间的联系,完整性约束问题,安全性的保持问题和数据库之间的联系,以及保证数据的完整性和可靠性。数据库中初步要求设计的表可以存放搜索的种子结点,解析网页得到的信息,关键字词库和搜索结果,以及还有就是索引相关的一些数据。4.1.2 数据字典Url数据表中要存放的数据为每个网页的Url和它所对应的标题,其目的就是为了保存蜘蛛爬虫抓取的种子结点。具体的表结构如表4-1所示。表4-1 Url数据表字段名主/外键数据类型位置说明ID主键Number(8)url_lyj唯一主键urlvarchar2(500)url_lyj网页的UrlTitlevarchar2(500)url_lyj网页的标题网页信息数据表中存放的信息为从网页中解析出来的信息,其中更新时间是解析网页时的系统时间。具体的表结构如表4-2所示。表4-2 网页信息数据表字段名主/外键数据类型位置说明ID主键Number(8)Webinfo唯一主键urlvarchar2(500)Webinfo网页的Urltitlevarchar2(500)Webinfo网页的标题keywordsvarchar2(1000)Webinfo关键词组descriptionvarchar2(1000)Webinfo简要描述updatedatevarchar2(64)Webinfo更新时间对于进行完关键词过滤之后的信息,需要保存到搜索信息数据表中,用户搜索的关键词所对应信息就是这张表中保存的数据。具体的表结构如表4-3所示。表4-3 搜索信息数据表字段名主/外键数据类型位置说明ID主键Number(8)Result_lyj唯一主键urlvarchar2(500)Result_lyj网页的Urltitlevarchar2(500)Result_lyj网页的标题contentvarchar2(1000)Result_lyj内容wordstock_id外键varchar2(1000)Result_lyj关键字updatedatevarchar2(64)Result_lyj更新时间relationNumber(8)Result_lyj相关度关键词数据表是面向主题搜索引擎独有的一张表,表中存放的是关键字。具体的表结构如表4-4所示。表4-4 关键词数据表字段名主/外键数据类型位置说明ID主键Number(8)Result_lyj唯一主键wordvarchar2(64)wordstock关键字4.1.3 数据库模型设计图4-1 数据库实体关系图对于本系统的数据库模型设计是参考系统分析之后得到的,数据库表之间的关系来源于系统各模块之间的关系映射。因此各个表之间的相互级联关系不是很复杂,只有关键词库表和检索结果表之间存在关联关系,其他的表都是独立存在的。数据库中各个表之间的关系和表的信息如图4-1所示。4.2 系统详细设计经过需求功能的说明和数据库的设计,系统开始进入详细设计阶段。系统的设计流程首先是设计网络信息的抓取,即所谓的蜘蛛爬虫。有了网络资源以后,就要开始解析Html文件,即网页解析模块,这一模块要做的工作就是把Html文件解析为.txt文件。下面要做的就是把解析好的网络信息保存到数据库中并且创建索引,这一步的工作是由建立索引模块来完成的。做完以上的工作后,就要使用关键词词库对索引进行过滤得到面向主题的信息,并保存到数据库中。以上所述的都是面向主题搜索引擎的后台工作。用户接口模块就是本系统的前台工作,即使用JSP(Java Server Pages)写页面,使用Action作为控制层,用Hibernate与数据库进行交互。4.2.1 网络爬虫流程设计图 4-2 网页抓取流程图网络爬虫的准备工作就是网站的选取,网站选取首先是要选取专业的官方服装信息网站,需要注意的是不能选择由Javascript动态生成的网页,不能选择页面结构经常变化的网站。然后就是分析网页结构以便准备抓取清单。准备工作完成以后就可以做网络爬虫进行爬取,具体流程图见图4-2。4.2.2 解析Html文件对于静态网页的文件解析,本系统选取了三个标签进行解析。得到的内容包括网站的标题,网站的关键词描述和网站的内容的简要介绍。在这个模块的难点是对于主题相关度的计算,相关度的计算要求判断标签的位置和Luence自己通过空间向量模型计算的权值。得到结果后保存到数据库中。详细图解见图4-3。图 4-3 解析HTML流程图4.2.3 创建索引创建索引时首先读取本地文件,把从文件中读取到的有用信息存放到数据库,然后再把封装为对象的数据加入到索引中,索引结构创建了一个IndexWriter,一个Document,多个Field和Term,在IndexWriter中使用了JE分词技术,即对索引中的内容进行分词。图4-4就是对该模块的流程分析。图4-4 索引文件流程图4.2.4 使用关键词词库过滤索引文件面向主题的搜索引擎词库是一个关键的环节,在这个词库中存放了大量的专业的词汇用于用户搜索。在这个模块要使用该词库对已经建立好的索引文件进行过滤,之所以这样做的原因是由于我没有做有关中文分词以及匹配算法的程序,而是直接使用了Luence内部实现的功能来完成以上模块,但是Luence的分词技术会把存放在索引文件中的所有的内容进行分词,那么如果不进行过滤的话,用户就会搜索到许多与主题无关的信息,这样导致的结果就是主题搜索引擎的精确度会很低,所以需要采取这一步的措施来实现面向主题的过滤。对于过滤的信息,会得到索引文件的一个权值,利用逻辑判断把一条信息得到的所有权值进行相加,最后的结果就是主题的相关度。图 4-5 索引文件过滤流程图4.2.5 网站前端设计前台的设计是典型的MVC设计模式,框架使用的是Struts框架。其中各层的逻辑如下:(1)M层:模型(Model):由包含业务处理的规范组件EJB、小型组件JavaBean、以及一些必须的Java实用类组成。(2)V层:视图(View):由Jsp页面和HTML页面、包括相应的标签库、XML文档组成。Jsp和HTML页面用来实现用户操作界面,与用户交互,XML(扩展标记语言)文档负责数据格式的描述、数据的传输和相关Jsp页面处理和跳转流程的描述。(3)C层:控制器(Controller):由XML配置文件(config.xml)和Servlet组成。Servlet是运行于服务器端的Jsp,Servlet跟据XML配置文件向上控制Jsp页面的跳转,向下负责调用相应的包含业务逻辑的EJB组件来对用户的访问请求进行处理。控制器是整个系统处理流程的控制中心。总体分类框图如图4-6所示:图4-6 MVC分类图图4-7 用户接口模块流程图本模块是与前几个模块有很大差别的,它是本系统的Web模块。负责实现与用户之间的交互功能。用户访问本系统就是通过该模块,在模块的处理中,首先是提取到用户输入的关键字,然后查询关键词库中是否有该关键字,如果存在该关键字,那么就得到相应的搜索纪录显示到用户页面中。如果不存在该关键字,就告知用户没有对应的搜索纪录。流程设计如图4-7所示。4.2 小结本章主要介绍了系统的数据库设计以及详细模块设计。在数据库设计中由于许多内容都是存储在本地文件中,所以设计的比较简单。详细设计中主要就每个模块的流程做了详细的介绍,主要是以流程图的形式表现的。第五章 系统实现5.1 系统功能实现本系统在经过各阶段的分析之后,已经实现了系统的各个模块的功能。整个系统的后台和前台设计方式是大不相同的,这里就这两部分分别做一些介绍。5.1.1 系统后台功能实现系统的后台实现中有四个模块,由这四个模块共同完成了系统后台的设计。第一个模块为网页信息抓取模块,在这个模块使用了一个开源的Web网络蜘蛛Heritrix,主要抓取的就是一些服装网站的信息。在设计抓取网页的时候,对其做了限制,只要求网络蜘蛛抓取该网站的Html格式的网页。第二个模块是网页信息解析模块,在该模块中主要是对网页的Title标签以及Meta标签中的Keywords和Description进行解析。之所以选择解析这几个标签,是因为这几个标签在一个网页中是比较具有代表性的,可以涵盖网页的内容介绍。主要代码实现如下:/对网页中的Title标签进行解析NodeFilter title = new OrFilter(new TagNameFilter(title),new TagNameFilter(TITLE);/对网页中的META标签进行解析,其中META标签的属性值name为Keywords或者keywordsNodeFilter keywords = new OrFilter(new AndFilter(new TagNameFilter(META), new HasAttributeFilter(name,keywords),new AndFilter(new TagNameFilter(META), new HasAttributeFilter(name,Keywords); /对网页中的META标签进行解析,其中META标签的属性值name为Description或者descriptionNodeFilter description = new OrFilter( new AndFilter(new HasAttributeFilter( name,Description),new TagNameFilter(META),new AndFilter(new HasAttributeFilter( name,description),new TagNameFilter(META);第三个模块就是建立索引模块,这个模块的功能就是建立索引。在这个模块使用了Lucene的建立索引的技术,由于这个模块在系统中只是一个过渡的模块,所以只是把需要进行关键词过滤的信息进行了索引。最后一个模块为关键词库过滤模块,关键词库过滤模块存在的目的主要是为了使用关键词库中的词对建立好的索引进行过滤,这样最后显示给用户的信息就不会出现与用户搜索主题无关的内容。这也是面向主题搜索引擎的一个重要指标。5.1.2 系统前台功能实现系统的前台实现内容相对比较少,这里通过使用前台进行搜索的过程来介绍系统前台的整体实现。(1)系统主界面:这个界面是用户初次访问的界面,用户是通过在该界面输入关键字进行搜索的。图5-1 系统主界面图(2)搜索结果界面:该界面所显示的是用户的搜索结果,在这一部分的设计中可以实现分页,动态显示搜索纪录,查询搜索的总纪录等功能。这些功能可以人性化的给用户返回一个比较理想的视图效果,用户可以根据搜索的记录数和当前的页数来选择察看的内容。图5-2 搜索结果图(3)返回搜索结果为空界面:这个界面是由于用户搜索的关键字在词库中不存在,所以返回给用户的结果为空。并且在页面的右上方给用户提供了其他搜索网站供用户选择。图-3 搜索结果为空界面图5.2 小结在这一章主要介绍了两部分内容,这两部分都是在系统完成之后撰写的。第一部分为系统后台的实现;第二部分是对于系统前台的实现。结 论本文对面向主题的搜索引擎的整体架构和实现做了分析,实现了一个面向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平安银行重庆市合川区2025秋招结构化面试经典题及参考答案
- 欣赏 谁说女子享清闲 我家有个小九妹※ 手拉风箱呼呼响教学设计-2025-2026学年初中音乐湘教版简谱 五线谱八年级上册-湘教版
- 高中练字帖 考试题及答案
- 高数强化考试题及答案
- 高级养护工考试题及答案
- 妇产科补考试题及答案
- 空间元素对建筑美学设计与用户体验的影响
- 基于数字经济环境的财务数据分析方法研究
- 电气专业课程体系中AI与自动化技术的协同发展
- 风电塔筒生产线项目风险评估报告
- 福建省全国名校联盟2026届高三上学期联合开学摸底考试语文试题及参考答案
- 2025年广工建筑电气试卷及答案
- 2024年广西桂林理工大学南宁分校招聘真题
- 排污许可证管理条例课件
- 乡镇人大主席“干在实处、走在前列”学习讨论发言材料
- 2025年食品安全管理员考试题库及参考答案
- 用户反馈收集及问题分析表
- 无人机飞行操作规范手册
- 【里斯】年轻一代新能源汽车消费洞察与预测 -新物种 新理念 新趋势(2024-2025)
- 医院收费室培训课件
- 信仰思政课件
评论
0/150
提交评论