基于Nutch的垂直搜索引擎的设计和实现
本文关键词:基于Nutch的垂直搜索引擎的设计和实现,由笔耕文化传播整理发布。
计算机工程与设计ComputerEngineering
and Design
2011,V01.32,No.2
539
基于Nutch的垂直搜索引擎的设计和实现
邵秀丽,
刘 彬, 张
涛
(南开大学信息技术科学学院,天津3000
71)
摘要:为了提高搜索引擎的主题倾向性和准确率,在Nutch平台上实现了带有中文分词插件的垂直搜索引擎,给出了改进 后引擎的系统功能和体系结构,并从用例角度分析了系统的功能,介绍了基于该体系结构实现的港口物流信息垂直搜索引 擎以及和一般引擎运行情况的比较.实验结果表明,这些改进提高了主题判别的准确度和效率,使信息的定位和查找更加 精确,减少了不相关信息的干扰,并提高了系统对于互联网复杂环境的处理能力. 关键词:Nutch平台;垂直搜索;体系结构:用例分析;主题搜索 中图法分类号:TP311.52 文献标识码:A 文章编号:1000.7024(201I)02.0539.04
Design and implementation of vertical search engine based
SHAO Xiu.1i. LIu Bin, ZHANG Tao
on
Nutch
(College ofInformation Technical Science,Nankai
Abstract:In order to improve
University,Tianjin 300071,China)
search engine with Chinese plug—in based
and
Oil
subjeCt tendence and
correct rate
of search engine,vertical
structure
Nutch is implemented.The engine’S improved system function and system using is analyzed.It also introduces
is
given
the system function from the point of
structure
the port logistics information vertical search engine based on this system
and compares
with
general engine’S running conditions.The experimental result shows these improvemenB reduce the interference
ofirrelevant
information
and
improve the system ability to deal with complex environment of
Intemet.
Key words:nutch
platform;vertical
search;system structure;case analyse;subject search
0引
言
索引擎oI。只要对其一些功能根据需要进行功能改进就可以获 得效果提升。因此,本文对其几个主要功能做了改进,例如, 在Nuteh平台上增加了中文分词插件,从而使Nutch具有中文信 息处理能力:此外,在系统实现中采用了基于向量空间模型Ⅲ的 主题相似度判别算法,并对该算法进行改进.加入元数据判别 机制和重要标签所包含关键词的加权处理。分析了“隧道现 象”的成闪和日前的处理方式。在Nutch原有的爬虫部分源代 码加入“隧道处理”机制,以处理主题网页分离的问题,并且修 改了检索结果排序的源代码,在原有的基于链接相似度评分 的基础t加入了根据贞面主题相似度评分,使其更适应垂直 搜索引擎的要求”1。本文主要就改进的Nutch体系结构、用例 分析功能模块、从系统用户和主要功能流程之间的关联等方 面进行分析。并给出了运行效果,给出了基于Nutch构建的港 口物流信息垂直搜索引擎Ⅲ,从而实现了多个港口物流信息的 快捷查询和共享。
垂直搜索引擎是针对某一行业或组织,以构筑某行业或 组织的网络信息资源库为目标来满足行业专业需求或者组织 某项业务需求,智能地在瓦联网卜搜集符合某一专题需要的 信息资源。是通用搜索引擎的细化和延伸….它对网页库中的 某类争业信息进行整合,分字段抽取出用户需要的数据,处理 后以某种形式返【nl给用户。能够为包括学科信息门户、专业 信息机构、特定行业领域、公司信息中心、行业专家等等在内 的信息用户.提供整套的网络信息资源开发力.案。由此可见 垂直搜索引擎是更有针对性的搜索引擎.它只搜索特定主题 的信息“1。在国内外,关于垂直搜索引擎的研究成为一个新的 热点,出现了许多有具有代表性的应用系统科学搜索引擎Sci. ms、Berkeley的Focuseroject等。而港口物流信息都集中在各 自的门户网站中,形成了一个个孤岛,无法让用户集中深入的 获取到各个主要港口的物流信息。因此。本文构建港口物流 信息垂直搜索引擎,以实现港u物流信息的快捷台询和共事。 本文实现的系统是在Nutch的基础卜进行扩展和修改的, Nutch是Apache软件基金会提供的一个开放源代码的Web搜
收稿日期:2010.02.10:修订日期:2010-04.26. 基金项目:困家科技支撑计划肇金莺人项目(2007BAHIOBOI)。
l系统功能和体系结构
1.1
Nutch体系架构 Nutch作为一个搜索引擎,其基本组成也同其它搜索引擎
作者简介:邵秀丽(1963--).女.天津人,教授.研究力.向为网格计算、软件T程等l 向为软件上程、数据挖掘;
刘彬(1984一),男。河北安新人,硕+研究生,研究方
张涛(1983--),男,河北邯郸人,硕士研究生,研究方向为软件上程。E-maih shaoxl【@nankai.cdu.cn
万方数据
540
2011,V01.32,No.2
计算机工程与设计Computer
Engineering and Design
一样。简单的说,包括爬虫,索引和搜索3部分。其体系结构 图如图l所示。
页面的链接,将其更新到数据库中(updatedb); (6)重复进行3~5的步骤,直到预先设定的抓取深度。这
个循环过程被称为“产生/抓取/更新”循环。根据segments的
内容更新LinkDB数据库(invertlinks);
(7)建立索引,对每个Segment生成一个索引(index);
(8)从这些索引中删除冗余的网页和URL; (9)把所有这些小索引合并成一个大的索引,用来搜索; (10)用户通过用户接口进行查询操作; (11)将用户查询转化为Lucene查询; (12)返回结果。
其中:(1)--(6)属于爬虫部分,(7H9)属于索引部分,(10卜
02)属于查询部分。 1.2改进系统的功能
图l
Nutch体系结构
按照搜索引擎的一般结构,本文系统设计分为搜索引擎 内核部分和辅助功能部分01。通常需要有维护人员进行一系 列的管理和设置工作,控制系统协调高效的工作。改进系统 的功能设计框架如图2所示。
Nutch由4个主要的数据结构提供数据支撑,分别是Web-
DB、LinkDB、Segments和Index。
(I)WebDB用来存储从抓取开始(包括重新抓取)看到的所 有URL的相关信息。这些信息包括状态、抓取的时间、重试 的次数、分数、签名、修改的时间、元数据等。状态有未抓取、 己抓取、成功抓取、需要重试等。 (2)Linl①B用来存储链接信息。对于每一个URL,在这个 数据库中都有一项与之对应,该项的数据包括该URL。连向该 URL的所有URL及其锚文本。这个数据结构可以迅速找到 一个URL的所有父页面的URL,也可以用它来计算所有页面 的PageRank值。 (3)Segments包含若干个Segment,由于Nutch爬虫的抓取 方式是采用广度优先搜索来抓取互联网上的页面。所以它的
圈 臣圃臣团 圈 巨圃臣圃巨固匿圃匿圃
图2本系统功能框架 按照与搜索引擎结合的紧密程度,主题管理、资源发现、 检索结果显示等内容属于辅助部分;网络爬虫、网页分析、主 题过滤、网页索引、网页检索等内容属于搜索引擎的内核部 分。由于Nutch平台已经提供了其中的大部分功能,这样就可 以集中精力开发满足特定需要的功能模块。 1.3系统的体系结构 该系统的体系结构如图3所示。它的功能流程如下:利 用Nutch的网络爬虫获取web网页,并对其进行解析。每当获 得一定数量的网页后就对这些获取的网页文档进行主题相关 性判断,如果该文档与主题相关:一方面反作用于网络爬虫, 沿着该URL信息继续爬行,如果不相关则放弃当前的页面, 但是把该页面中的URL放入URL候选队列中,用来爬取可能 的主题页面:另一方面把那些与主题相关的文档调用Nutch的 索引器来建立索引。搜索器及用户界面仍然采用Nutch的原 有的结构。 有底色背景的模块是本文引擎对Nutch重点实现或改进 的部分: (I)页面分析模块:在Nutch基础上加入中文分词插件,以 实现中文分词功能。 (2)页面过滤模块:修改Nutch代码加入主题相似度判别 功能,以实现对网页主题进行相似度判定和过滤。
抓取是一层一层,每一层就对应一个Segment。一个Segment
里面又包括crawl—generate,crawl-fetch,c.ontent,parse-text,parse,- dam,crawl—parse等文件夹。crawl.generate里面存放的是待抓 取的URL列表,crawl.fetch里面存放的是抓取下来的uRL的 信息属性,content里面存放的是抓下来的网页内容,parse-text 里面存放的是解析网页所获得的网页文本,parse-data里面存 放的是解析网页所获得的网页数据,crawl-parse里面存放的是 抓下来的页面的一些信息属性。 (4)Index里面存放的是对抓取下来的网页建立索引后的 文件。Nutch使用Lucene来建立索引,Lucene是Apache软件 基金会Jakarta项目组的子项目,它不是一个完整的全文索引 系统,而是一个用Java写的全文索引引擎工具包.提供了多个 AP!函数和灵活的数据存储结构,可以方便嵌入到各种应用中 实现针对应用的全文索引和检索。 在此基础上,其整个的工作流程可以分为如下几步: (1)建立初始URL集: (2)将初始URL集注入到crawldb数据库中(inject),整个网 页抓取过程将会从这些种子URL开始抓取,慢慢延伸到整个 互联网。或者直到用户指定的抓取层数停止: (3)根据crawldb数据库创建抓取列表(generate): “)执行抓取,获取网页信息(fetch): (5)更新数据库,被抓下来的网页中包含有大量指向其它
万方数据
邵秀丽,刘彬,张涛:基于Nutch的垂直搜索引擎的设计和实现
(3)链接过滤模块:修改Nutch代码加入处理“隧道现象” 的功能,从而使爬虫可以爬取被无用页面分隔的丰题页面。
201 l,V01.32,No.2
541
内容解析功能,通常还包括内容的模板化提取。可以得到更 为精细的网页内容,减少内容无关和垃圾信息的影响。 (6)t题相关度判定:针对下载的嘲页的实际内容,,判断其 与主题的相关性和相似度。根据相似程度判断是甭删除或保留。 (7)主题索引建立:索引部分町以采用一般的通用搜索引 擎存储格式,在这里采用Nutch中集成的Lucene提供索引建 立功能。 (8)主题检索服务:提供领域信息的检索服务,为用户提供
(4)Nutch检索器:修改Nu劬代码在原有的检索结果排序
的基础七加入页面主体相似性因素,使相关度高的结果优先 显示给用户。
初始URL列表 贝面聚集模块
更加及时有效的信息,同时减少无关信息,方便用户快速定位 资源,满足用户信息获取的需要。 本文开展的对Nutch的改进工作内容主要有(这里简单介 绍,有关内容,请看本课题组发表的其它论文): (1)Nutch工作原理的分析
面呗H‘加入N页u髫糕㈣H页噗
\…”。 !美篓釜H竺
‘修改Nutcb代码)l’
链接过滤模块 (修改Nutch代码)
Nutch的工作分为3个阶段:抓取、索引和检索。抓取阶 段取得网页并把他们处理成倒排索引。后面检索阶段的工作
—Nu意tch翮
索‘I器 Nutch霞0I教槲库
。嚣曲Nu榆tch勰,恒
‘修段 代码)I
URL队列
基于这哆索引来进行。 (2)中文分词插件的实现 中文分词是中文垂直搜索引擎中的一个关键技术,分词 的好坏直接影响提取文本的精确度。Nutch是针对英文开发
用户
l::=:=::
的,因此,本文系统在此基础上修改内部代码,以实现中文分 词的功能。 (3)主题相似度判别的实现 现在应用于主题相似度判别的技术有很多,主要有:元数
图3本系统体系结构
2系统的用例模型
根据用户和系统的需求,创建用例图来描述垂直搜索引 擎的软件功能模块,以及这些模块之间的调用关系。系统使 用者和外部通信目标包括:查询用户、系统管理员。查询用户 通过系统进行检索;系统管理员维护系统运行,进行抓取、预 处理等[作。从垂直搜索引擎的这个结构和功能进行分析, 得到的用例图如图4所示。
据判别技术,扩展元数据判别技术,页面间链接分析技术,页 面语义信息分析技术。本文系统在充分利用Nutch提供的链 接分析技术的基础上整合了页面语义信息的分析判别技术, 并增加了元数据的判别。在构造页面关键词向量空间时对重 要标签所包含关键词进行了加权处理,提高了主题相似度判 别的准确率和效率。 (4)隧道穿越的实现
≮画爹@≤多 菩:暑晷
@
⑧
图4
由于商业竞争和其它的原因,各个门户网站之间很少会 有超链接直接相连,从而可能造成爬虫抓取不到相关的网页。 本文提出了一种优先度递减和URL黑名单结合的方式来处 理该问题。 (5)Nutch结果排序算法的改进 Nutch的排序是针对通用搜索引擎设计的,采用了类似 PageRank的结果评分机制,只考虑了URL的重要程度而没有 考虑页面信息的蘑要程度.本文通过修改Nutch的排序源码将 URL和页I亘i的蕈要程度都引入到结果的排序中.从而提高了
系统用例图
针对用例的功能描述如下: (1)系统管理控制:为管理员提供参数设置和内容管理功 能,能够灵活挖制资源的访问和系统的内容属性等相关信息。 (2)一lj题侧管理:提供主题词管理界面,系统管理员可以维 护一份选定的E题词列表,其功能操作包括添加、修改、删除 主题词,为:i:题侧设置权霞。 (3)辛题资源发现:即起始URL列表的选择,要求能及时、 有效的自动裔找、增加相关的信息内容。 (4)t-.题资源F载:定向F载的9【)9络爬虫为垂汽搜索引擎 提供尽可能榭哭的原始网页,同时要爆最避免下载尤关的数据。 (5)文本分析:文本分析挺供针对特定领域和l=I标的文本
结果显示的质量,增强了用户的检索体验。
3
系统实现
3.1系统工作流程 上述的功能流程图说明了系统的主要功能模块之间的调 用关系。在具体的系统运行过程中,其工作流程如图5所示。 (1)系统首先从原始URL列表将原始URL注入WebDB: (2)系统从WebDB生成FetchList,即抓取列表,其中包含 系统本轮需要抓取的URL: (3)爬虫Fetchers调用FetchList,对其中每一个URL进行 抓取,抓取得到的数据通过解析器Parser进行解析与中文分
万方数据
542
2011,V01.32,No.2
计算机工程与设计Computer
Engineering and Design
图5系统工作流程 词等工作; “)解析得到的数据送入主题过滤器,如果主题过滤器判 断某一个页面与主题无关,系统将会丢弃它; (5)主题过滤器处理后的数据分成两个部分,一部分是页 面中提取出的URL送入更新器Updates提交到WebDB中,准备 进行下一轮抓取,另一部分是页面信息送入Content进行存储。 (6)Content中存储的数据送入索引器进行索引,索引结果 将被保存: (7)用户可以通过WebServer对索引过的数据进行检索。 其中:(1)到(6)是提供查询用户服务前的工作。系统反复 进行(2)到(6)可以通过一轮一轮的抓取,不断扩展系统中的 数据量。 3.2运行流程 该系统在建立之初已经把目标领域定位为港口物流信息 的搜索,因此初次运行时需要首先确定与本领域相关的主题 词和起始URL列表,然后将其加入系统的配置文件中,本文 实现的系统提供了一个配置工具以方便系统管理员维护主题 词和URL列表。这样系统管理员就可以运行系统的爬虫,从 互联网上爬取与主题相关的网页,建立索引,为用户提供检索 服务。随着时间的推移,必然会有新的网页加入的互联网中, 同时已经保存并建立索引的网页也有可能被原始网站删除或 修改,这就需要更新爬取,加入新的网页,处理失效的链接网 页等。运行流程图如图6所示。 3.3实际运行 以下是实际运行时的界面: (1)主题词和起始URL配置界面 系统配置工具如图7所示。 在“主题词管理”栏可以添加、修改主题词和权垂,也可以 删除主题词:在。起始URL管理”栏可以打开起始uRL文件, 在其中添加或者删除起始URL-在“运行管理”栏可以点击。初 次运行”按钮或“更新”按钮。已开启cygwin的命令行界面。 (2)爬虫运行界面 Nutch是为在Linux系统下运行而开发的。因此在Windows 下需要安装cygwin工具来模拟Linux环境才能使用Nutch。 3.4测试结果与分析 在实际情况下很难计算一个垂直搜索引擎的查全率,因 为根本无法计算一个互联网E有多少主题相关页面,同时本 文设计的垂直搜索引擎的目的是为了让返l口]的结果集中含有 更多与主题相关的信息,所以在这里只用查准确率来评价系 统性能。 (下转第548页)
图7系统配置工具
翟芦
图6系统运行步骤
万方数据
548
201 I,V01.32,No.2
计算机工程与设计Computer
Engineering and Design
统开发,为校园网提供了可扩展、面向服务的管理平台,也为 利用SOA方法解决其它行业的需求提供了很好的参考。
参考文献:
【1】
Mark D Hansen.使用Java Web服务构建SOA【M】.北京:电子
工业出版社,2009.
【2】
刘贤梅,刘茜,徐锋,等.基于SOA的企业应用集成模型的研究
图9使…。cnent与windows环境中㈣恺最姬吲罢茹慧三兰0=篇竺:一嘶。眦。
features-and—functional—concepts,2006?04-14。
eoncepts[EB/OL].http://uddi.xml.org/introductionuddi-important-
【4】
Shallid Ahmed.Xfire:The easy and simple way
to
develop web
services。JavaWord.com[EB/OL].http://www.javaworld.eom/ja— vaworld/jW一05—2006aw.0501一xfire.htm,2007-09—10. [5】 【6】 图10使用Ping工具探测对拓扑中的设备 【7】 部分:中央服务器、网络状态探测框架、拓扑编辑器。运维平 台使用服务封装了各种嘲络管理功能,并将这蝗服务在中央 服务器上进行发布;实现了可拓展可编程的网络状态探测框架 NSDI.开发了界面友好功能强大的图形化拓扑编辑器,可以监 控和管理网络拓扑。本文将SOA的设计理论应用于实际的系 [81 陈明.网络协议教程【M1.jE京:清华大学出版社,2004. 黄晓波,潘雪增.网络拓扑发现的算法和实现【J】.计算机应用与 软件'2007,24(7):159-16l? 冀汶莉,李勇军.Transit.Stub网络拓扑可视化研究【J】.微电子学 与计算机,2007,24(1):136?139. 石永革,陈晓瑶.网络拓扑搜索算法的分析与优化[J】.计算机工 程与设计,2007,28(12):2828.2850. 【9】李安渝.Web service技术与实现【M】.北京:国防工业出版社。
2003.
(上接第542页)
为了说明本系统的主题搜索性能,选择通用搜索引擎 Google对关键词“港口物流”进行搜索,同时使用本系统进行 同样的搜索,对两个系统结果集的前200个页面进行了主题相 关度评价,与通用搜索引擎的比较,对比数据结果如表l所示。 表l与通用搜索引擎比
搜索0I擎 棚荚时间
本文提出的港口物流信息垂寅搜索引擎的设计和实现方案是 切实可行的,系统基本达到了预期设计目标。该系统的研究 促进了港口物流信息化的发展并对该领域的从业人员起到了 很好的帮助作用。但是还有一些需要改进的地方,例如进一 步提高主题判别的准确度等。
l土趣相关嗍贞数J
89
轰准率
参考文献:
【l】 【21 徐和祥.DeepWeb集成中若干技术研究【C】.复黾大学。2008. http://incubator.apache.org/nuteh/apidoes[EB/OL]. 李军'黄海宽,曹琦.基于支持向鼋机的中药工艺参数优化研究 【J】.计算机工程与应用,2007,43(36):205.207. f4】 申晋.基于Lucene和Nutch的林业垂直搜索引擎的研建【J】.农 业网络信息,2008(4):16-18. 【51 余栋柱.用Nuteh构建垂直搜索引擎的方案【J】.工程技术,2009
(14):118.120.
Google
0.2Is
44.5%
实验结果表明,港口物流信息垂直搜索引擎具有明显的 主题倾向性,结果的查准率优于通用搜索引擎。但是系统在 搜索速度上不如商业搜索引擎.这是因为Nutch所采用的开发 语言和其算法没有Google高效以及实验系统本身的硬件性 能限制。 综I二,本文系统初步达到了在单台服务器下能够比较准 确的搜索出与港口物流主题相关信息的设计要求,可以进行 进一步的改进和实旖应用。
【3】
【6】
王仕仲,宁龙兵.基于Nutch的中文搜索引擎的研究与实现【J】.
电脑开发与应用,2009(7):76--79.
【7】
张锦忻.基于Nutch的中文搜索引擎的构建【J】.图书馆研究与
4结束语
本文提出了一种基于开源Nutch平台的垂直搜索引擎解 决方案,研究并实现了港口物流信息垂直搜索引擎,实验证明 【8J
工作2009(”:弹57.
张斌,周尔宁.基于Nutch的分布式纺织垂直搜索引擎研究【JJ. 电脑知识与技术,2009(21):5785-5787.
万方数据
基于Nutch的垂直搜索引擎的设计和实现
作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 被引用次数: 邵秀丽, 刘彬, 张涛, SHAO Xiu-li, LIU Bin, ZHANG Tao 南开大学信息技术科学学院,天津,300071 计算机工程与设计 COMPUTER ENGINEERING AND DESIGN 2011,32(2) 2次
参考文献(8条) 1.徐和祥 DeepWeb集成中若干技术研究 2008 2.查看详情 3.李军;黄海宽;曹琦 基于支持向量机的中药工艺参数优化研究[期刊论文]-计算机工程与应用 2007(36) 4.申晋 基于Lucene和Nutch的林业垂直搜索引擎的研建[期刊论文]-农业网络信息 2008(04) 5.余栋柱 用Nutch构建垂直搜索引擎的方案 2009(14) 6.王仕仲;宁龙兵 基于Nutch的中文搜索引擎的研究与实现[期刊论文]-电脑开发与应用 2009(07) 7.张锦炘 基于Nutch的中文搜索引擎的构建 2009(01) 8.张斌;周尔宁 基于Nutch的分布式纺织垂直搜索引擎研究[期刊论文]-电脑知识与技术 2009(21)
本文读者也读过(3条) 1. 赵德平.刘阳.李鹏.MAO Deping.LIU Yang.LI Peng 基于Lucene的房产信息垂直搜索引擎的研究[期刊论文]-沈 阳建筑大学学报(自然科学版)2011,27(1) 2. 王梦溪.王斌.WANG Meng-xi.WANG Bin 基于标签的垂直搜索研究及在视频搜索中的应用[期刊论文]-仪表技术 2011(5) 3. 罗立宏.陈志.LUO Li-hong.CHEN Zhi 基于语义分析的垂直搜索网络蜘蛛[期刊论文]-计算机工程与设计 2008,29(18)
引证文献(5条) 1.郭晓霞.王磊.席岩.王晓艳.汪瑛 基于网络的视频内容检索与盗版追踪溯源研究[期刊论文]-广播与电视技术 2011(7) 2.陈建峡.李倩倩.王春枝 基于Nutch搜索引擎的E-learning系统开发[期刊论文]-湖北工业大学学报 2011(5) 3.陈诚 基于云计算的智慧城市垂直搜索技术研究[期刊论文]-软件产业与工程 2012(4) 4.王燕平 基于文献计量的我国搜索引擎研究现状和热点分析[期刊论文]-现代情报 2012(7) 5.陈诚 基于云计算的智慧城市垂直搜索技术研究[期刊论文]-软件产业与工程 2012(4)
本文链接:
本文关键词:基于Nutch的垂直搜索引擎的设计和实现,由笔耕文化传播整理发布。
本文编号:196849
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/196849.html