基于lucene与heritrix的搜索引擎构建(编辑修改稿)内容摘要:
输入信息 没有错误提示信息,仍然停留在本页面。 ② 用户输入空格或制表符 没有错误提示信息,刷新页面。 ③ 用户没有选择影视 系统返回当前选择类型的信息。 ④ 系统失去连接或崩溃 系统提示连接超时 用户等待系统响应,直到恢复正常 ⑤ 系统崩溃 返回错误信息,提示用户系统出现故障 , 用 户退出 (2) 详述用例: 后台维护人员建立索引 主要参与者:维护人员 相关人员及其兴趣: 维护人员希望系统能快速方便的完成建立索引任务,并能产生日志,以便维护。 前置条件:维护人员有可利用资源 主要成功场景: ① 维护人员整理可利用资源,打开索引建立 子 系统 ② 维护人员在配置文件中修改资源目录 ③ 配置运行时参数 后,点击建立索引 ④ 系统产生索引文件并产生日志 基于 Lucene 与 Heritrix 的搜索引擎构建 –8– 用例场景已经分析出来,下一个阶段是利用用例画出用例图。 这样更加直观显示出参与者与系统的交互流程。 用例图如图 所示。 用例图表述 如下 : (1) 用 户进行影视搜索 用例 产生的用例图系统外参与者为用户,系统事件包括用户选取类型 ,搜索信息和资源链接。 (2) 后台维护人员进行资源抓取用例 产生的用例图系统参与者是后台维护人员,系统事件包括定制抓取任务,抓取资源,在抓取资源的过程中涉及到的是外部资源持有者。 (3) 后台维护人员建立索引 用例 产生的用例图主要参与者为后台维护人员,系统事件包括资源预处理 、 规范化 、 噪音过滤 、 正文抽取 、 索引建立 、 日志建立 和 索引维 护。 S o B a 系 统用 户后 台 维 护 人 员资 源 持 有 者搜 索 信 息抓 取 资 源索 引 建 立索 引 维 护日 志 建 立资 源 选 取 图 部分 用例 语境 图 详述 用例 和用例 图 已经完成分析,接下来是根据用例来画出系统顺序图。 系统顺序图将系统视为黑盒,注重的是参与者与系统之间的交互过程, 对用例 场景 进行分析 如下: (1) 用户进行影视搜索 用例中用户和 SoBa 系统其实就 是用户和用户接口 子 系统的交互,主体为用户和接口 子 系统,系统顺序图如图 所示。 基于 Lucene 与 Heritrix 的搜索引擎构建 –9– S o B a 系 统用 户输 入 ( 字 或 词 )选 择 搜 索 类 型请 求 搜 索返 回 信 息结 束 搜 索 图 用户与系统交互的系统顺序图 (2) 后台维护人员进行资源抓取 用例的主体是后台维护人员和 Heritrix 爬虫 子 系统,两者交互过程如图 所示。 后 台 维 护 人 员S o B a 系 统输 入 用 户 和 密 码创 建 新 的 抓 取 任 务返 回 验 证 信 息设 置 抓 取 时 的 处 理 链设 置 运 行 时 的 参 数运 行 抓 取 任 务结 束 抓 取 任 务返 回 资 源 和 日 志 图 维护人员与 网络爬虫 交互 的 系统顺序图 (3) 后台维护人员建立索引用例的主体是后台维护人员和索引建立 子 系统,两者交互过程如图 所示。 基于 Lucene 与 Heritrix 的搜索引擎构建 –10– 后 台 维 护 人 员S o B a 系 统输 入 用 户 名 和 密 码返 回 验 证 信 息配 置 资 源 路 径配 置 运 行 时 参 数请 求 开 始 建 立 索 引返 回 索 引 文 件 和 日 志结 束 建 立 索 引 图 维护人员与索引建立 子 系统交互系统顺序图 系统顺序图已经绘制出来,经过分析得出了系统和外部参与者的交互过程,大概的分析出系统应该承担的责任和参与者的责任,在用户和系统之间,用户扮演的角色是把系统当成黑盒来看,只是需要系统给出自己想要的信息,用户的责任 只是将词条输入进去,而此时的系统的责任就比较繁忙了,它会首先将信息进行处理,转换成让搜索器认识的词语或单字,这样就可以进行下 一项,利用搜索器在索引库中搜索对应的信息,当信息被检索出来,再对 结果 进行筛选,最后 将其放入实体对象封装起来,形成 xml 格式传给客户端,这就是用户和系统的交互,并对用户和系统 内部进行了简单流程分析;在维护人员和系统之间,维护人员责任 是建立和维护索引以及日志,对于维护人员的责任就是尽量为系统的进一步工作做准备,并做好维护工作,而系统的责任就是对维护人员选取的资源进行处理、正文抽取、建立索引 、维护索引和建立日志。 这些是在这个阶段简单分析出来的过程。 下一阶段是对以上所有信息进行领域模型抽取。 系统领域模型 对 参与者 和系统的交互过程进行领域模型抽取,首先是名词概念抽取: Term(词条),TermDisposo(词条处理器), Searcher(搜索器), EntitySet(实体集), IndexStore(索引库) , FileSpider(文件蜘蛛), FileFilter(文件过滤器), Entity(实体)等 ,领域模型图如图 和 所示。 基于 Lucene 与 Heritrix 的搜索引擎构建 –11– w o r dT e r m1 T r a n s m i t t o1S e a r c h e r T e r m D i s p o s o r i n d e x e sI n d e x S t o r e1 T r a n s m i t t o1 S e a r c h f r o m 111 p r o d u c e1e n t i t i e sE n t i t y S e t 图 用户接口子系统 部分领域模型 1 P r o d u c e1N a m eT y p eE n t i t yf i l e P a t h sF i l e R e s u l t S e t F i l t F i l t e r I n d e x B u i l d e r E x t r a c t o r L o g g e rs o u r c e D i rF i l e S p i d e r I n d e x M a n a g e r1 T r a n s m i t1f i l e P a t h sF i l e R e s u l t S e t F i l t e r t o 11 T r a n s m i t f r o m11 P r o d u c e f r o m1* I n d e x T r a n s m i t t o*1 P r o d u c e11 P r o d u c e11 M a n a g e b y1 1 图 索引建立 子 系统部分领域模型 系统 概要 设计 在需求分析阶段, 产生的用例模型和领域模型带入设计阶段,现在可以大概设计系统的构架,如图 所示。 基于 Lucene 与 Heritrix 的搜索引擎构建 –12– S o B a 引 擎抓取资源H e r i t r i x 爬 虫定制任务资源分析索 引 建 立 系 统预处理规范化噪音过滤分词倒排建立索引可用资源抽取搜索器用 户 接 口 系 统WEB用户界面 图 系统总体架构 以下是对架构设计的叙述: (1) Heritrix 爬虫系统 主要是应用 Heritrix 爬虫抓取资源,而这些并不属于这此工程开发任务,所以不纳入设计开 发。 (2) 索引建立 子 系统 主要是建立索引,及其周边一些操作。 要设计索引建立 子 系统 ,必须要了解索引建立过程,领域模型中已经可以看出此子系统的大概框架,首先要利用文件爬虫将资源目录下的所有文件路径收集起来,再经过文件过滤器将自己感兴趣的文件路径得到,得到的路径 经过正文抽取器将数据抽取出来, 这样就可以利用抽取出来的数据进行索引建立。 在熟悉了搜索引擎建立的过程后,可以对其架构进行设计,可以在流程中看出资源文件就像是一批材料,索引建立 子 系统就像是工厂,将材料加工输出成品,所以可以将该流程设计成流水线形式,可以将资 源路径作为流水线上的材料,疵品被剔除掉,经过流水线的一系列操作后,索引最后输出。 (3) 用户接口子系统 用户接口子系统 是用户利用 用户接口子系统 进行搜索,这部分可能设计到的技术是Ajax, Lucene Searcher 等,利用 Ajax 的用户操作与服务器响应异步化特性,可以实现局部数据传输,只将用户所需要的信息返回即可,这样大大降低了服务器和客户端交互量,用户可以创建接近本地桌面应用的直观、丰富 和 动态的 Web 用户界面。 系统 详细 设计 在框架设计中,简要的设计出来了各个子系统的整体流程,下面则是对 索引建 立 子系统和 用户接口子系统 的设计。 基于 Lucene 与 Heritrix 的搜索引擎构建 –13– 索引建立 子 系统 (1) 实体设计 实体的设计 的目的 是 封装 资源抽取 出来的 数据 , 这样 有利于 使用和传递数据。 在实体设计的上层是 Entity,它继承自 Object 类,是所有实体的父类。 在本项目中只设计了三个实体: Movie、 Text 和 Image,分别对应影视、网页和图片。 实体关系图如图 所示。 E n t i t y t i t l e : s t r i n g p a t h : s t r i n g . . .I m a g e n a m e : s t r i n g p l a y e r : s t r i n g . . .M o v i e t i t l e : s t r i n g c o n t e n t : s t r i n g . . .T e x t 图 实体 之间 关系图 (2) 抽取器设计 提到正文抽取技术,当今流行的技术有基于分装器的网页文本信息抽取技 术、基于统计的网页正文抽取技术和基于数据挖掘思想的网页正文抽取技术。 ① 基于分装器的网页文本信息抽取技术,该方法属于传统的网页信息抽取方法。 它使用分装器( wrapper) 来抽取网页中感兴趣的数据。 分装器(也称为:包装器)是一个程序,它根据一定的信息模式识别知识从特定的信息源中抽取相关内容,并以特定形式加以表示。 ② 基于 统计 的网页文本信息抽取技术,该方法克服了传统的网页内容抽取方法需要针对不同的数据源构造不同的包装器的缺点,具有一定的普遍性。 该方法对网页正文信息的抽取依赖阈值 P 和 T,阈值 P 决定了选择网页正 文的文本块。 ③ 基于数据挖掘思想的网页正文抽取技术,这类方法把数据挖掘技术应用到对网页自由文本的处理中,大大提高对网页正文 ( 文章 ) 抽取的准确率,突破了数据挖掘技术在应用方面对结构化数据的依赖,是一种很好的正文抽取技术。 但仍然有一些普遍性问题有待进一步改善。 基于 Lucene 与 Heritrix 的搜索引擎构建 –14– 三种技术中基于数据挖掘的网页正文抽取技术实现难度很大,在此次项目中不加以考虑,所以采用前两种技术。 在现今比较流行的开源项目中, HtmlParser 是基于分装器的技术,而基于统计的技术要自己来分析设计一种算法。 这种算法的开发也是接下来的重要任务之一。 在 抽取器 设计中 , 影视和图片的抽取器基于 分装器技术,而网页抽取器是基于统计技术 ,出于这样的考虑是因为影视和图片在网页中的结构比较固定,比如说图片,一般都封装在 img 标记中,这样利用分装器很容易就可以抽取出来,而对于网页的抽取就不那么容易了,大量的网站中的网页结构不是相同的,存在很大的差异, 不适合利用分装器抽取,所以选取了更为便捷的方式,基于统计的抽取技术。 抽取器之间的关系图如图 所示。 + e x t r a c t ( ) t a r g e t F i l e P a t h : s t r i n gE x t r a c t o r+ e x t r a c t ( ) t a r g e t F i l e P a t h . . .H t m l E x t r a c t o r+ e x t。基于lucene与heritrix的搜索引擎构建(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。