为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

网站站内搜索引擎课程设计报告一

2010-08-28 18页 pdf 485KB 42阅读

用户头像

is_119350

暂无简介

举报
网站站内搜索引擎课程设计报告一 网站站内搜索引擎课程设计报告一 需求分析报告 1. 封面及个人贡献的分解 a) 第一页 i. 课程名称 高级软件工程 ii. 项目名称 中科院网站站内搜索引擎 iii. 提交日期 iv. 项目组成员列表 小组成员均为软件所学生 学号 姓名 手机号 邮箱 200928015029038 许利杰 15210909647 csxulijie@gmail.com 200928015029047 赵占平 15001270254 zhaozhanping09@mails.guca...
网站站内搜索引擎课程设计报告一
网站站内搜索引擎课程设计报告一 需求分析报告 1. 封面及个人贡献的分解 a) 第一页 i. 课程名称 高级软件工程 ii. 项目名称 中科院网站站内搜索引擎 iii. 提交日期 iv. 项目组成员列表 小组成员均为软件所学生 学号 姓名 手机号 邮箱 200928015029038 许利杰 15210909647 csxulijie@gmail.com 200928015029047 赵占平 15001270254 zhaozhanping09@mails.gucas.ac.cn 200928015029041 张灿 15210631362 canzhanghys@163.com 200928015029012 高蕾 15210902177 gaolei09@mails.gucas.ac.cn 200928015029046 赵鑫 15210902170 zhaoxin155001@163.com 200928015029017 李奇原 15210909712 liqiyuan312@gmail.com b) 第二页 i. 个人贡献分解表 成员 职责 小组成员姓名 许利杰 赵占平 张灿 赵鑫 高蕾 李奇原 2:项目管理(10) 80% 10% 10% 3:用户需求说明(7) 50% 25% 25% 4:术语表(3) 100% 5:功能需求详述(40) 20% 20% 20% 20% 20% 6:非功能需求(6) 30% 70% 7:领域分析(20) 20% 30% 30% 20% 8:用户界面设计(10) 70% 10% 20% 9:工作(3) 100% 10:参考文献(1) 100% 2. 目录 目录 网站站内搜索引擎课程设计报告一 ............................................................................................... 1 需求分析报告 ........................................................................................................................... 1 1. 封面及个人贡献的分解 ........................................................................................... 1 2. 目录 ........................................................................................................................... 3 3. 用户需求说明 ........................................................................................................... 4 4. 术语表 ....................................................................................................................... 5 5. 功能需求详述 ........................................................................................................... 5 6. 非功能需求 ............................................................................................................. 13 7. 领域分析 ................................................................................................................. 14 8. 用户界面设计 ......................................................................................................... 17 9. ................................................................................................................. 17 10. 参考文献 ............................................................................................................. 18 3. 用户需求说明 a) 项目背景 目前高校网站或者一般网站中使用的站内搜索引擎基本有三大类:一种是使用 Google 的站内搜索引擎服务(由 Google Search Appliance 驱动)。(如:清华大学、上海交大、浙江 大学等等)。一种是使用原始的文件索引技术,类似于在 word 中查找关键字的方法对文档 进行搜索,因此只能搜索一些办公(如:中科院研究生院)。最后一种是只能搜索校内 各个下属网站主页(如:武汉大学,相当于查询一个主页名字和网站地址的映射表)。 后两 种不能称之为真正意义上的站内搜索引擎。 比较特殊的是北京大学的站内搜索使用了自己开发的天网搜索引擎,属于真正意义上的 站内搜索引擎。 b) 项目目的 针对中科院旗下网站,部署一个类似 Google 站内搜索和北大天网搜索引擎的站内式搜 索引擎。用户通过输入关键字能够检索到内容相关的站内网页及图片、文档等多种文件,并 能够对结果进行排序、分类和整理,最终通过浏览器将结果返回给用户。 c) 已有的解决方法 从目前调查结果来看,北大天网搜索引擎返回结果中不能直接提供 MS word、pdf 等文 件的直接链接,Google 站内搜索可以(通过点击返回的结果标题,可以直接下载 doc、pdf 等文件)。但 Google 站内搜索没有提供网页快照功能,天网提供了。 其他高校如华中科技大学的站内搜索也能够对站内的网页进行搜索,但是也只能处理网 页,不能处理其他类型的文件。中科院以后的站内搜索也是同样的情况。 除了 Google 的站内搜索服务,目前另一位比较优秀的站内搜索引擎是基于开源检索工 具改造和搭建的。如:美国俄勒冈州立大学的站内搜索引擎(http://search.oregonstate.edu/)。, 不仅能够对校内网页进行索引,而且能够对内容进行分类检索,支持多类型文件的检索。 d) 具体用户需求 首先,站内搜索引擎是一个大型网站提供的一种网络服务,是为了方便用户快速检索到 自己想要访问的网页或文件。因此在网站首页应包含简洁、醒目的搜索框,用户直接在搜索 框中键入查询关键字,点击确认或回车后,网站应能够快速响应请求,并将符合用户搜索的 结果通过网页形式反馈给用户。 其次,用户希望返回结果中,除了相应结果的链接,还要有对网页的简单摘要,如商业 搜索引擎中一般有 3 到 4 行对搜索结果的描述,便于用户鉴别是否是自己想要访问的链接。 另外,返回的结果应该按照查询关键词的相关度排序,越符合查询要求的应该放的越靠前。 第一页显示 10 条左右的查询结果,如果过多的查询结果放在同一页,会令用户感觉复杂繁 多。如果查询结果多于 10 条,可以让用户通过点击下一页等方式来访问。 再次,站内搜索引擎要能够定期自动更新,因为不断地有新的网页或者文件加入到网站 中,定期更新搜索结果,能够保证用户能够及时地通过站内搜索引擎访问到新加入的资源。 最好还能够提供网页快照功能,便于用户快速访问已经关闭或者暂时不能访问的网页。 4. 术语表 爬虫:将web网页自动下载到本地的网络程序。 URL:统一资源定位符(英语Uniform Resource Locator的缩写)也被称为网页地址,是因特 网上的资源的地址。 分词:将一段文字分割成一组符合日常用语的词语。 类别词:对网页分类起作用的关键词。 布尔查询:说明各个关键词是否要在查询结果中出现,“+”表示出现,“-”表示不出现。 5. 功能需求详述 a) 利益相关者(stakeholders) 需要提供站内搜索引擎服务的网站所有者 b) 角色(Actors)和目标(Goals) 在本系统中角色主要是一般用户(通过 web 来使用站内搜索服务),类型是参与者,主 要参与系统功能需求描述和系统测试。另外一个角色是网站管理员,管理员负责将开发好的 系统部署到网站上,配置搜索引擎所需配置文件,并监控和维护系统运行。 c) 用例(Use Cases) i. 简要描述  用户输入关键词查询: 用户可以按照不同的格式来输入关键词,不同的格式代表对搜索结果的不同要求, 这样可以筛选出用户想要的搜索结果。  管理员配置搜索引擎配置文件: 管理员通过配置包含搜索引擎运行所需参数的配置文件来控制搜索引擎的相关功 能。  管理员部署和更改索引文件: 管理员需要部署搜索引擎的 web 应用到 web 容器上,从而使用户可以通过 web 方 式来访问搜索引擎。管理员也可以更改索引文件的路径,从来让搜索引擎搜索不同的索 引文件。  用户分类检索: 针对不同的用户需求,提供不同的标签,用户可以选择搜索网页、搜索院内人员信 息、搜索招生或者科研信息,这样可以使结果更具有领域相关性和准确性。 ii. 完整描述  用户输入关键词查询: 1、 普通多关键词查询:只输入关键词,关键词之间不用空格隔开,表示采用系统默认分词 方式分隔关键词;用空格隔开表示按照用户指定的分词方式分词。 2、 精确查询:输入带有引号的关键词,如“Chinese Academy of Sciences”,表示精确匹配 引号内的关键词,引号内的关键词不被分词。 3、 大小写不敏感查询:输入的英文单词不区分大小写,如“Beijing”等同于“beijing”。 4、 布尔查询:在关键词前面加上“+”表示出现搜索结果要出现关键词,加上“-”表示不 出现关键词  管理员配置搜索引擎配置文件: 1、 url 过滤策略设置:通过定义网络爬虫抓取网页的 url 过滤策略来限制爬取网页的类型, 其语法与正则表达式大致相同,以”+”表示接受后面定义的地址类型,”-”表示拒绝。如 果只想让爬虫抓取 url 中含有 ac.cn 的网页,可如下定义:+^http://.*.ac.cn/.*。 2、 起始 url 设置:起始 url 地址是让爬虫从该地址开始抓取网页并处理信息。如可从以下地 址开始抓取:http:://www.gucas.ac.cn/gscascn/index.aspx。 3、 爬取设置:设定爬虫网络延时的线程等待时间、爬虫抓取文档内容长度的最大值和自动 爬取间隔时间等配置信息。 4、 索引设置:设定每个文档的最大字段数和设定合并因子等配置信息。  管理员部署和更改索引文件: 1、 部署引擎:管理员把搜索引擎的 Web 应用部署到 Web 容器下,以使最终用户可以通过 Web 方式访问。 2、 修改引擎:管理员可以替换搜索引擎所需的索引文件,在不改变上层应用的情况下,更 改底层的索引文件相当于更改搜索引擎的查询内容。  用户分类检索(根据时间安排,如果时间充足,可以考虑实现) 搜索引擎提供分类检索功能,其中有首页有 4 个标签,分别为:网页、人员、招生、科 研。不同的标签提供更为详细和准确的搜索结果。 1、 网页检索:与“用户输入关键词查询”的用例一致。 2、 人员检索:检索中科院内相关人员介绍和与该人员相关的网页信息。 3、 招生检索:检索最新和历史招生信息,招生信息来自中科院研究生院的各个院系和中科 院所属的各个研究所。 4、 科研检索:主要检索最新的科研进展和状态新闻,以及目前承担的项目和发表的论文等 信息。 iii. 用例图(Use Case Diagram) 图 1 用户查询用例图 <> <> <> <> 一般用户 关键词查询 普通多关键词查询 精确关键词查询 大小写不敏感查询 布尔查询 图 2 管理员配置搜索引擎配置文件图 图 3 管理员部署和更改索引文件图 <> <> <> <> 管理员 配置搜索引擎 起始URL设置 爬虫相关设置 URL过滤规则设置 索引策略设置 <> 部署搜索引擎 修改索引文件 管理员 图 4 用户分类检索图 d) 系统序列图(System Sequence Diagrams) 图 5 用户查询序列图 <> <> <> <> <> 管理员 检索人员信息 检索招生信息 检索科研信息 网页分类 建立类别词典 获取网页特征信息 用户分类检索 Result sortedDocument wordAnalyze() docIndex() indexSearch() wordSearch() keyword 一般用户 wordAnalyzer Indexseacher indexwebInputTextArea Result sortedDocument wordAnalyze() docIndex() indexSearch() wordSearch() keyword 图 6 管理员配置搜索引擎配置文件序列图 管理员配置搜索引擎配置文件 done configureIndex() configureURLStrategy() configureURL() configureCrawler() specifyFile whichFile configureFiles 管理员 configureFile crawler startURL URLfilter indexConfig done configureIndex() configureURLStrategy() configureURL() configureCrawler() specifyFile whichFile configureFiles 图 7 管理员部署和更改索引文件序列图 管理员部署和更改索引文件 deploy() indexAttribute modifyIndexAttr done deploy() specifyIndexPath 管理员 deploySearcher index deploy modifyIndex alt deploy() indexAttribute modifyIndexAttr done deploy() specifyIndexPath 图 8 用户分类检索序列图 6. 非功能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需 求:  系统的易用性和易维护性 搜索引擎直接面对终端客户,这就要求系统能够提供良好的用户接口,易用的人机交互 界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用 户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 另外,系 统要提供方便的手段供系统维护人员进行日常的管理。  系统的开放性和可扩充性 本项目在开发过程中,应充分考虑以后的可扩充性。例如对于 doc、pdf 文件的解析处 理等工作是要不断完善和更新的。这些要求系统提供足够的手段进行功能调整和扩充。而要 实现这一点,应通过系统的开放性来完成,即系统应是一个开放系统,可以通过简单的加入 和减少系统的模块来更新系统,而不必在原有系统上大费周折。  系统的响应速度 响应速度指用户检索时提交关键字后等待系统回复的时间。用户提交检索内容后,系统 用户分类检索 As same as above As same as above sortedPage classifieddPage pageMetaInfo dictionaryIndex serachFeature() searchDict() classifyPage() inputKeyword 管理员 personSearch admission research classification Dictionary pageFeature As same as above As same as above sortedPage classifieddPage pageMetaInfo dictionaryIndex serachFeature() searchDict() classifyPage() inputKeyword 应尽快匹配查找,返回相关内容,响应速度是搜索引擎系统的一个重要性能指标。  系统的检索质量 检索质量指用户期望检索内容与系统实际返回内容的匹配程度。搜索引擎系统作为帮助 用户查找特定信息的工具,检索质量直接反应了搜索引擎的实用性程度,是考量一个搜索引 擎系统的重要标准。  系统的健壮性 对于用户不规范的操作,系统应提供足够的容错能力,在最大程度上不影响用户正常使 用。对于系统运行过程中自身产生的错误,应保留相关错误信息以供后续的修改维护工作。  系统的查全率和查准率 查全率和查准率是考虑网页自动分类算法需要两个重要指标:查全率指通过分类算 法被正确分类的文本数目与未分类文本前属于该类的文本数总数的比率,查准率为通过分类 算法被正确分类的文本数目与通过分类算法被分为该类的文本数目的比率。 7. 领域分析  爬虫爬取策略 爬虫的工作策略一般则可以分为累积式抓取(cumulative crawling)和增量式抓取 (incremental crawling)两种。 累积式抓取是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的 所有网页。在理想的软硬件环境下,经过足够的运行时间,累积式抓取的策略可以保证抓取 到相当规模的网页集合。但由于 Web 数据的动态特性,集合中网页的被抓取时间点是不同 的,页面被更新的情况也不同,因此累积式抓取到的网页集合事实上并无法与真实环境中的 网络数据保持一致。 增量式抓取是指在具有一定量规模的网络页面集合的基础上,采用更新数据的方式选取 已有集合中的过时网页进行抓取,以保证所抓取到的数据与真实网络数据足够接近。进行增 量式抓取的前提是,系统已经抓取了足够数量的网络页面,并具有这些页面被抓取的时间信 息。 一般地,累积式抓取一般用于数据集合的整体建立或大规模更新阶段;而增量式抓取则 主要针对数据集合的日常维护与即时更新。在确定了抓取策略之后,如何从充分利用网络带 宽,合理确定网页数据更新的时间点就成了网络蜘蛛运行策略中的核心问题。 总体而言,在合理利用软硬件资源进行针对网络数据的即时抓取方面,已经形成了相对比较 成熟的技术和实用性解决方案,这方面目前所需解决的主要问题,是如何更好的处理动态网 络数据问题(如数量越来越庞大的 Web2.0 数据等),以及更好的根据网页质量修正抓取策 略的问题。  建立初始 URL 集合分析 初始 URL 集的建立有两种方式:超链接和站长提交。 超链接是指机器人程序根据网页链到其他网页中的超链接,从少数几个网页开始,连到数据 库上所有到其他网页的链接。理论上,若网页上有适当的超链接,机器人便可以遍历绝大部 分网页。 站长提交是指在实际运行中,爬虫不可能抓取到所有站点,为此,网站站长可以向搜索 引擎进行提交,要求收录,搜索引擎经过核查之后,便将该网站加入到 URL 集合中,进行 抓取。  爬取过程 在爬取过程中,要维护一个爬取链接数据库,该库中存有等待爬取的链接信息。 Inject 操作:爬虫将 URL 集合进行格式化和过滤,消除其中的非法 URL,并设定 URL 状态,按照一定方法把 URL 集合进行初始化分值。期间,要将某些 URL 进行合并,以消除 重复的 URL 入口。当有新的 URL 信息时,将其状态等信息存入爬取链接数据库,与原数据 库中重复的则删除旧数据,更换为新数据。 Generate 操作:该操作从抓取链接数据库中将 URL 取出并进行过滤;通过域名、链接 数等信息对 URL 进行排序;将排序后抓取列表信息保存。 Fetch 操作:该操作按照抓取列表进行链接抓取,在抓取过程中,页面的 URL 地址肯能因为 链接发生改变,则需要更新 URL 地址;可采用多线程方式提高抓取速度;抓取过程中调用 parse 操作。 Parse 操作:该操作解析 fetch 得到的页面并进行整理,将页面信息按照页面的主题、链 接等信息和页面的文本内容分别保存。 Updatedb 操作:该操作根据 parse 操作保存的内容,对抓取链接数据库进行更新,增加新的 URL,更换旧的 URL。  索引过程分析 在索引之前,首先将数据转换成纯文本格式,这就要求系统能够对 html 文件以外的文 件进行解析,如 doc 文件、pdf 文件等。格式转换后,还需要进行预处理,对数据进行分析 使之更加适合被索引。分析数据时,先将文本数据分成一些大块的字符流,然后对它们执行 一些操作,如去掉一些无实际意义的词(停止词),而后对数据进行分词操作。分词在索引 和搜索时都会用到。对输入的数据处理完成之后,就可以把结果采用“倒排索引”的方式写 入到索引文件中。  分词技术分析 信息检索的基础是对文本的分析。对文本分析的最主要的处理就是能够对完整的语句进 行分词。分词,即将一段文本拆分成多个词单元。在建立索引的时候,写入索引并能够被用 户检索的是一个个的词条,所谓词条即通过分词处理后的文本。因此对于用户的检索输入也 需要进行分词,这样可以让信息检索系统更贴切的理解用户的检索请求,进而为其搜索相关 内容。 对于中文分词,有以下一些处理方法。 单字分词:将中文语句划分成一个字来处理。 双字分词:将中文语句划分成两两的词语来处理。 词库分词:基于一些已知词汇对中文语句进行断句分词处理。 本 项 目 采 用 中 科 院 计 算 所 的 汉 语 词 法 分 析 系 统 imdict-chinese-analyzer , imdict-chinese-analyzer 是基于 imdict 智能词典的智能中文分词模块,算法基于隐马尔科夫模 型,可以直接为 Lucene 搜索引擎提供中文分词支持。  网页排序 用户提交检索请求后,服务器将以一定次序返回与用户请求匹配的结果,优先将最相关 的内容呈现给用户。 最简单的一种排序方式为相关度排序。所谓相关度,就是文档的得分。Lucene 计算文 档得分的方法如下: score = sum(tf(t in d)*idf(t)*boost(t.field in d)*lengthNorm(t.field in d)) 其中 score 表示文档得分,sum 表示对于每个词条的求和,t 表示词条,d 表示用户检索关键 字,tf(t in d)表示检索的词条在某个文档中总共出现的次数,idf(t)表示反转文档频率,通过 包括当前检索的词条的文档总数与索引中总共的文档数量的比值计算,boost (t.field in d)表 示词条的激励因子,一般默认为 1,lengthNorm(t.field in d)表示词条的长度。 Nutch 使用了 OPIC 作为默认的 URL 调度策略,但是当前版本的 OPIC 实现与 Abiteboul 在论文提出的 OPIC 并不完全相同,具体表现为: Nutch 中并没有区分当前页面的 cash 和在计算过程中页面 i 累计收到的 cash 的总数,使用 score 一个变量记录页面累积的分数,在分配过程中也是将这个累积的分数全部平均分配给 子页面,分配完毕后分数也并不清零。 Nutch 中并没有 virtual root page,也就是说叶子页面(即没有 outlink 的页面)的分数将会丢 失。 另一方面,Nutch 的排序算法针对的是 Internet 上大量网页的情况,而对于像站内搜索这 种页面内容重复度小、某些常用关键词(如:中科院)在各个网页出现频率较高,以至于可 以降低这个关键词的权值的情况,需要对算法进行相应修改。 8. 用户界面设计 输入框是用户输入关键字的地方,上面的标签是用于用户分类查询的,帮助是介绍搜索 引擎的使用方法的。 9. 工作计划 项目 由 10 月 11 日开始,共 16 周 1: 可行性分析 部署 nutch(全体) 学习搜索原理(全体) 2: 可行性分析 部署 nutch(全体) 学习搜索原理(全体) 3: 需求 分词功能分析(赵鑫)索引过程分析(许利杰)搜索结构分析(张灿) 文本分类(高蕾) 界面及结果排序(李奇原) 4: 需求 爬虫功能(赵占平) 分词功能分析(赵鑫) 索引过程分析(许利杰) 搜索结构分析(张灿) 5: 需求 爬虫功能(赵占平) 导入中文分词包(赵鑫) 6: 需求 分析 爬取策略(赵占平) 导入中文分词包(赵鑫) 7: 需求 分析 爬虫结构(赵占平) 分词结构分析(赵鑫) 索引结构分析(许利杰) 8: 分析 查询结构(张灿) 分类结构(高蕾) 9: 分析 设计 网页排序(李奇原) 内容分类分析(高蕾) 10:分析 设计 搜索过程(张灿) 分析文档建立(许利杰) 11: 设计 编码 分词引入(赵鑫) 排序算法引入(李奇原) 建立索引结构(许利杰) 累积抓取(赵占平) 12:设计 编码 分词引入(赵鑫) 排序算法引入(李奇原) 建立索引结构(许利杰) 内容分类(高蕾) 13:设计 编码 增量抓取(赵占平) 搜索过程(张灿) 14:编码 搭建用户界面(李奇原) 增量抓取(赵占平) 15:编码 完善查询过程(全体) 功能集成(全体) 16:测试 功能性测试(全体) 10. 参考文献 [1]Ian Sommerville: 软件工程(第8版),机械工业出版社 [2]Requirements analysis, URL:http://en.wikipedia.org/wiki/Software_requirements_analysis [3]IEEE recommended practice for software requirements specifications, IEEE Std 830-1998, URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=720574&isnumber=15571 [4]UML 用例图.http://www.uml.org.cn/oobject/images/uml2.pdf [5]UML 序列图详解. http://tech.it168.com/a2009/0215/265/000000265396_1.shtml [6] IBM Rational Edge. http://www.cnblogs.com/mbskys/articles/640522.html [7]Lucene in Action. Erik Hatcher. Manning Press [8]Nutch. http://lucene.apache.org/nutch/ [9]林晓明. 搜索引擎技术原理及系统. 科学出版社
/
本文档为【网站站内搜索引擎课程设计报告一】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索