admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:vab常用代码)

ISSN 1009—3044 

E—mail:kfyj@cccc.net.cn 

http://www.dnzs.net.cn 

ComputerKnow ̄edgeandTechnology电脑知识与技术 

Vo1.8,No.4,February 2012 

Tel:+86—551—5690963 569()964 

基于Nutch和Solr的基础教育垂直搜索引擎的实现 

王小正,侯青 

(南京晓庄学院数学与信息技术学院,江苏南京21 1 171) 

摘要:该文描述了一个基于Nutch和Solr实现的基础教育垂直搜索引擎,给出了系统实现框架,其可以为中小学师生提供专业的资 

源检索服务。 

关键词:Nutch;Sok;基础教育;搜索引擎;垂直搜索 

中图分类号:TP393 文献标识码:A 文章编号:1009—3044(2012)04—0975—02 

Implementation of Elementary Education Vertical Search Engine Based on Nutch and Solr 

WANG Xiao—zheng.Hou Qing 

(Co ̄ege ofMathematics&Information Technology,Nanjing Xiaozhuang University,Nanjing 211171,China) 

Abstract:This paper describes the implementation of dementary education vertical search engine based on Nutch and Solr,and ivesg the 

system architecture,which can provide professional resources search service for the teachers and students ofprimary and secondary schools. 

Key words:Nutch;Solr;elementary education;search engine;vertical search 

计算机和网络技术的发展使信息的发布与共享不再受时间、空间的限制,同时也给我们带来了“信息过载”的问题。面对信息 

的海洋,用户试图通过浏览器来发现信息已经变得非常困难,往往花费很多时间却所获甚少。Google、百度等综合性搜索引擎虽然 

强大,但人们在使用这些搜索引擎的时候,经常发现搜索出的资料也难以尽如人意,排在搜索结果前面的许多资源,根本不是自己 

所需要的。 

本文从基础教育应用的需求考虑,实现了一个利用Nutch和Solr的建立面向基础教育领域的垂直搜索引擎,帮助广大中小学校 

师生及时获取基础教育领域相关知识。 

1相关技术介绍 

1.1 Nutch简介 

Nuteh是基于Lucene的开源搜索引擎,是一个完善的应用程序,实现了抓取、索引、检索的一体化。由于商业搜索引擎允许竞 

价排名,这样导致索引结果并不完全是和站点内容相关的,而Nutch搜索结果能够给出一个公平的排序结果,这使得Nutch对垂直 

搜索、学术搜索和政府类站点的搜索等领域来说是个好选择。 

1.2 Solr简介 

Solr现在是Lueene的一个子项目。Solr是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java来实现,服务器通 

信使用标准的HTrP和XML。主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word, 

PDF等)的处理,具有高度的可扩展,支持分布搜索和索引的复制。 

1.3 IKAnalyzer介绍 

IKAnalyzer是一开源的、基于java开发的轻量级中文分词工具包。它是以开源项目Luence为应用主体,结合词典分词和文法 

分析算法的中文分词组件。采用了特有的“正向迭代最细粒度切分算法”,支持细粒度和最大词长两种切分模式。 

1.4实现方案 

在该搜索引擎实现方案中,虽然Nutch本身具有搜索功能,但把Solr作为处理搜索结果的源和人口,能够有效地减轻对Nutch的 

搜索负担,让Nutch负责它最擅长的工作:抓取(crawling)、提取(fetching)和解析(parsing)容。使用Solr作为搜索后端,可以充分使 

用SolrServer的搜索特性:查询拼写检查(spell—check),搜索提醒(suggestion),数据复¥ ̄(data—replication)及查询缓存等。由于Solr本 

身中文分词功能较弱,因此引入IKAnalyzer来增强其中文分词功能。该搜索引擎框架可概括为Nutch+Solr+IKAnalyzer。 

2具体实现方法 

系统环境:Ubuntu 10.04 

所需软件及安装顺序:jdk一6u26一linux—i586_bin、tomcat一6.tar.gz、nutch一1.4.tar.gz apache—solr—core一3.5.0.jar、IKAnalyzer3.2.8.jar。 

收稿日期:2012—01—05 

作者简介:王小a ̄(1974一),男,江苏南京人,讲师,硕士,研究方向为分布式应用;侯青,女,助讲,硕士。 

本栏目责任编辑:梁书 *信息技术与课程奠台… 975 

Computer Knowledge and Technology电脑知识与技术 

所有软件安装过程略去,在软件配置方面需要特别注意的有以下几个地方: 

1)tomcat,c0nf下得serveLxml文件中添加“URIEncoding=”UTF一8…’,使得tomcat服务器支持中文。 

2)为了是tomcat支持solr,需把solr安装目录下的solr.war拷贝到tomcat/webapps文件夹下。 

3)在tomcat/conf录下新建Cata/ina/localhost目录,再在此目录下新建solr_xml文件,内容如图1。 

(?xll1l version="i,oH encoding= F一8 ?) 

第8卷第4期(2012 ̄-2月) 

<Context docBase= /home/tomcat。61webapps/solr.war debug="(} cros:sContext= true 

<Envir:onment name= solr/home type= ̄java。lang.String value= /home/tomcat一 

6twebapps/sok/coreO override="true ,> 

<,/Context> 

图1 

4)通过浏览器运行solrI ̄web客户端后,在tomcat/webapps目录下自动生成solr目录。这时把solr安装目录下的 。 。oZ件夹拷 

贝到刚刚生成的tomcat/webapps/solr文件夹下。并且把nuteh安装目录下的schema.xml文件拷贝到tomcat/webapps/solr/conf文件夹 

下。 

5)最后为了在solr搜索中支持IKAnalyzer中文分词,还需做以下设置:拷贝IKAnalyzer3.2.8.jar到tomcat/webapps,solr/WEB—INF/ 

lih,并且还需在tomcadwebappslsolr/conf/schema.xml文件中添加设置内容如图2。 

<analyzer type="index 

<tokenizer dass= org.witea.analyzer.50静。IKTokenizerFactory" 

 ̄sMa ̄WordLength=“true 》 

<fi|ter c|asS= !;olr.StopFUterFactery ignoreCaSew’'true words=”stopwords.txt” 

enablePositionincrements=”true”,> 

《illter el:ass: so垂r. 

《,analyzer> 

actory“ > 

<analyzer type="quety > 

<tokenizer Class="org.wltea.analyzer.So|r.IKIFeken ̄erFactory 

isMa.xWo:rdLer ̄gth:="tru:e”/> 

《豫ter class: 5o静 

ignoreCase= true”wards:”stopwords.txt” 

ements="true ,》 

<fitter alass so垂r,LowerCaseFi|terFactory” 》 

<filter c|ass: §DIr.Eng|ishPorterFi|terFactory"proteEred= protwords.txt /》 

<filter cJass="so|r.1iemoveDupiicatesTokenFilterFactory ,> 

(4'anafyzer> 

图2 

至此,搜索引擎的框架搭建已完成。接下来通过进一步地设置使其成为面向基础教育领域的垂直搜索引擎。主要设置环节如 

下: 

1)网络爬虫 

Nutch的爬虫有两种方式:1、爬行特定网(Intranet crawling)。针对少数网站进行,用crawl命令。2、爬行整个互联网。使用低 

层的inject,generate,fetch和updatedb命令,具有更强的可控制性。 

为了实现抓取特定范围内的与基础教育资源相关的信息,设定爬虫的网址主要为一些基础教育类网址,如k12学科网、北大附 

中、上海基础教育资源网等。同时为了充分挖掘这些特定网站的教育信息,对爬行命令craw1)的参数进行设定。其中一depth设定 

为10左右,一topN设定为1000。 

2)分词处理 

为了仅抓取与基础教育的有关信息,这里对关键词库进行了扩充,在原有词库的基础上,增加了与基础教育相关的词条。实现 

方法在tomcat/webapps/solr/WEB-INF/lib/IKAnalyzer3.2.8.jar包中添加文件mydict.dic。该文件内容包含需要扩充的词条,同时在IK— 

Analyzer.c .xml文件中修改设置如下:“<entry key=”ext—dict”>/mydict.dic;</entry>”。另外为了减少无效信息的检索,还需对tomcat/ 

webapps/s0lr/conf/schema.xml文件进行修改:“isMaxWordLength=”trl3e””,即使用最大词长切分模式。 

至此,基于Nutch和Solr的基础教育垂直搜索引擎已初步实现并能正常运行。 

3结束语 

由于该系统还处于试验阶段,很多地方还需不断完善。如单机爬行操作很耗时,需进一步构建分布式搜索引擎。Nutch的核心 

部分目前已经被重新用Map Reduce实现了。Map Reduce是一个分布式的处理模型,最先是从Google实验室提出来的。因此,基 

于Nutch构建分布式搜索引擎并不是一件很难的事。随着该基础教育垂直搜索引擎的不断完善,将能够提供强大的基础教育资源 

专业信息检索能力,有助于广大师生及时获取基础教育相关知识并为他们提供专业指导。 

参考文献: 

【1]张斌,周尔宁.基于Nut&的分布式纺织垂直搜索引擎研究『J1.电脑知识与技术,2009,5(21):5785—5787. 

[2】申晋.基于Lucene和Nut&的林业垂直搜索引擎的研建【J].农业网络信息,2008(4):16—19. 

【3杨晓江,3】李丽娟,田俊华等.面向基础教育的Web资源垂直服务体系研究 中国远程教育,2006(7):53—57. 

[4】徐健,张智雄.基于Nutch的Web网站定向采集系统[J1.现代图书情报技术,2009(4):1—6. 

976 …信息技术与i喇矗奠含 m 本栏目责任编辑:梁书 


本文标签: 搜索引擎 搜索 信息