孔 云 杨 婷
(昆明理工大学 图书馆,云南 昆明 650093)
开源信息检索技术在高校图书馆的应用
——以昆明理工大学图书馆为例
孔 云 杨 婷
(昆明理工大学 图书馆,云南 昆明 650093)
本文以昆明理工大学图书馆为例,从高校图书馆的角度,通过对开源技术的特点及其功能分析,探讨了开源检索技术在高校图书馆的发展与应用问题,为我国其他高校图书馆提供经验借鉴。
开源软件;高校图书馆;信息检索;云计算;web 2.0
数据、信息、知识的爆炸性增长给图书馆带来了戏剧性的挑战,但也为其发展提供了前所未有的机遇。数字图书馆的发展是对传统图书馆的颠覆,是未来图书馆生存的必然,其发展的核心问题是如何更好地对搜集、组织、检索与利用好信息资源。许多读者在面对海量信息时显得手脚无措,读者对图书馆的服务提出了更高的要求,希望能快速准确地获得所需资源;网络的发展迫使图书馆不但要为用户提供满意的数字资源,而且必须提供友好、快速的检索界面,这样才能不断地吸引读者,实现图书馆资源的最大效用[1,2]。
1.1 商业市场的冲击
随着搜索技术的不断发展,以及搜索市场的壮大,商业搜索引擎公司不断推出数字图书馆服务。学术谷歌,百度文库,新浪爱问等系统对图书馆的侵蚀日趋明显。比如,百度与北大、中科院科学图书馆合作,开发了强大的数字图书搜索功能,在网上建立搜索平台;Google 公司凭借其大量、稳定的资金和先进的技术与众多高等院校合作,开发了大量的数字化图书,放到网上供读者阅读。如今的搜索引擎技术日益成熟,并且逐步把图书馆的业务也融入到了搜索结果当中,用户可以在任何一个电脑终端,就可以享受到来自搜索引擎提供的有关图书和文献的信息服务。面对强大而高效的商业公司,图书馆特别是高校图书馆在自我服务定位与信息资源建设上需要进行转变。否则,随着云计算和网络技术的发展,图书馆的业务将被各大商业公司所抢占[3]。
1.2 Web2.0时代对图书馆发展的新要求
知识的爆炸性增长要求图书馆必须走数字化之路。而发展数字化图书馆的核心问题是信息、知识资源的组织、检索与共享。由此可见信息检索技术是图书馆的核心技术之一,面对海量数据和知识的爆炸性增长以及读者要求的不断提高,迫使图书馆必须提供秒级检索结果显示,才能吸引读者使用图书馆资源,爱用图书馆资源。
Web2.0概念的成熟和云计算技术的发展为图书馆为读者提供个性化,多样化的服务提供了坚实的基础。图书馆2.0的提出要求图书馆能从两个方面着手创新:一是服务创新;二是创新服务。服务创新是指在原有的服务领域,利用Web2.0 的先进技术、先进理念开展服务方式,服务手段的创新,提高服务水平。而创新服务则是需要图书馆建立自己的有关Web2.0的各种技术服务平台,为服务创新提供技术支撑,开辟新的服务领域,创建新的服务项目,为读者提供更高层次的服务[4]。
综观国内外各大高校,其图书馆所承担的任务概要归纳为教学、科研、社会信息共享等方面。从知识无限到知识无界限,让每一个读者都能方便快捷地获取知识,了解和感受最新科技学术动态是高校图书馆的重要任务。而这些均需要读者和图书馆间的信息互动来实现。因此,信息检索技术便成为连接读者和图书馆之间的纽带和桥梁。高校图书馆能否很好吸引和服务读者,直接依赖于信息检索技术的运用是否合理有效[5]。
1.3 图书馆的内在问题
为了迎接图书馆面临的外部危机,承当历史使命,图书馆必须拥有自己的信息检索技术和创新平台。然而,据估算,一个图书馆要实现自动化,其经费预算一般少到几十万,多到几千万。因各地财政情况不平衡,图书馆因经费不足从而使其自动化程度不一,甚至有些图书馆无法实施。经费申请,体制问题和信息技术人才匮乏等因素给图书馆自动化系统的推广带来了极大的困难和挑战。
目前, 国外对系统开源软件的研究已经从最初的仅由一些大学和研究机构进行自由式独立研究的初级阶段, 进入到形成开源软件技术联盟进行合作开发的成熟阶段[6]。我们完全可以吸取国外成熟的理念和技术并在国内试验和推广。
2.1 基于JAVA的开源搜索引擎
Nutch是一个开源 Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Apache Lucene是一个基于Java全文搜索引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。
Zilverline是一个搜索引擎,它通过web方式搜索本地硬盘或 intranet上的内容。Zilverline可以从 PDF,Word,Excel,PowerPoint,RTF,txt,java,CHM,zip,rar 等文档中抓取它们的内容来建立摘要和索引。从本地硬盘或intranet中查找到的结果可重新再进行检索。Zilverline支持多种语言其中包括中文。
Red-Piranha是一个开源搜索系统,它能够真正“学习”你所要查找的是什么。Red-Piranha可作为你桌面系统(Windows,Linux与Mac)的个人搜索引擎,或企业内部网搜索引擎,或为你的网站提供搜索功能,或作为一个P2P搜索引擎,或与wiki结合作为一个知识/文档管理解决方案,或搜索你要的 RSS聚合信息,或搜索你公司的系统(包括SAP,Oracle或其它任何 Database/Data source),或用于管理 PDF,Word和其它文档,或作为一个提供搜索信息的WebService或为你的应用程序(Web,Swing,SWT,Flash,Mozilla-XUL,PHP,Perl或c#/.Net)提供搜索后台等等。
Apache Solr 是一个高性能,采用 Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等[7]。
2.2 基于PHP的开源搜索引擎
PhpDig是一个采用PHP开发的Web爬虫和搜索引擎。通过对动态和静态页面进行索引建立一个词汇表。当搜索查询时,它将按一定的排序规则显示包含关键字的搜索结果页面。PhpDig包含一个模板系统并能够索引PDF,Word,Excel,和PowerPoint文档。PHPdig适用于专业化更强、层次更深的个性化搜索引擎,利用它打造针对某一领域的垂直搜索引擎是最好的选择。
RiSearch PHP是一个高效,功能强大的搜索引擎,特别适用于中小型网站。RiSearch PHP非常快,它能够在不到1秒钟内搜索5000-10000个页面。RiSearch是一个索引搜索引擎,这就意味着它先将你的网站做索引并建立一个数据库来存储你网站所有页面的关键词以便快速搜索。Risearch是全文搜索引擎脚本,它把所有的关键词都编成一个文档索引除了配置文件里面的定义排除的关键词。 RiSearch使用经典的反向索引算法(与大型的搜索引擎相同),这就是为什么它会比其它搜索引擎快的原因。
Sphinx是一个基于 SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为 MySQL也设计了一个存储引擎插件。Sphinx的特性:高速索引 (在新款CPU上,近10MB/秒);高速搜索(2-4G的文本量中平均查询速度不到0.1秒);高可用性(单CPU上最大可支持100GB的文本,100M文档);提供良好的相关性排名,支持分布式搜索;提供文档摘要生成;提供MySQL内部的插件式存储引擎上搜索,支持布尔逻辑、短语和近义词查询;支持每个文档多个全文检索域(默认最大32个);支持每个文档多属性;支持断词;支持单字节编码与UTF-8编码[8]。
2.3 中文支持情况
到目前为止,中文分词包括三种方法:1)基于字符串匹配的分词;2)基于理解的分词;3)基于统计的分词[9]。到目前为止,还无法证明哪一种方法更准确,每种方法都有自己的利弊,有强项也有致命弱点,简单的对比见下表所示:
?
2.4 常用中文分词
2.4.1 庖丁解牛分词包
庖丁中文分词库是一个使用 Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件。Paoding中文分词追求分词的高效率和用户良好体验。Paoding's Knives中文分词具有极高效率和高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。高效率:在PIII 1G内存个人机器上,1秒可准确分词100万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。 能够对未知的词汇进行合理解析[10]。
2.4.2 PHPCWS
PHPCWS 是一款开源的PHP中文分词扩展,目前仅支持Linux/Unix系统。PHPCWS 先使用“ICTCLAS 3.0共享版中文分词算法”的 API进行初次分词处理,再使用自行编写的“逆向最大匹配算法”对分词和进行词语合并处理,并增加标点符号过滤功能,得出分词结果[8]。
2.4.3 IKAnalyzer
IKAnalyzer是基于lucene2.0版本API开发的,实现了以词典分词为基础的正反向全切分算法,是 LuceneAnalyzer接口的实现[7]。Nutch具有灵活而强大的插件系统,因此,可以利用Nutch方便、快捷的搭建行业或领域搜索引擎。本文通过聚合昆明理工大学、云南大学等高等学校的主页,以及国内高等教育行业知名网站,为广大师生能迅速检索相关信息提供方便。
国外已经从仅由大学和研究机构进行自由式独立研究的初级阶段进入到开源软件技术联盟开发合作的成熟阶段。昆明理工大学图书馆结合自身的应用环境和技术力量,对开源搜索技术进行了一些有用的探索。下面是三个在本校图书馆使用良好的系统的介绍。
3.1 Nutch 教育行业网页内容垂直搜索引擎
Nutch 作为Apache 的一个开源项目,具备搜索引擎的基本功能,并采用网页本身的价值进行排序的算法,另外,
3.2 Regain资料共享检索系统
regain是一款与 Web搜索引擎类似的桌面搜索引擎系统,其不同之处在于regain不是对Internet内容的搜索,而是针对自己的文档或文件的搜索,使用regain可以轻松地在几秒内完成大量数据的搜索。Regain采用了Lucene的搜索语法,因此支持多种查询方式,支持多索引的搜索及基于文件类型的高级搜索,并且能实现URL重写及文件到HTTP的桥接,并且对中文也提供了较好的支持。
Regain提供了两种版本:桌面搜索及服务器搜索。桌面搜索提供了对普通桌面计算机的文档与局域网环境下的网页的快速搜索。服务器版本主要安装在 Web服务器上,为网站及局域网环境下的文件服务器进行搜索。Regain使用Java编写,因此可以实现跨平台安装,能安装于Windows、Linux、Mac OS及Solaris上。服务器版本需要JSPs环境及标签库(tag library),因此需要安装一个 Tomcat容器。而桌面版自带了一个小型的Web服务器,安装非常简单。
3.3 PhpMyfaq图书馆知识中心系统
phpMyFAQ是一个多语言支持、完全数据库驱动的开源FAQ系统。该系统支持所见即所有的多语言内容管理系统和图像管理,支持基于目录和记录权限的多用户管理,支持相关文章检索、支持标签和标签云功能,支持RSS订阅、用户跟踪功能和wiki版本控制功能,该系统还具有强大的搜索功能、智能回答功能、统计分析用户行为功能;具有多语言模块、增强的自动内容识别系统、新闻系统、支持模板、可以将文章等转换为Xml文件、PDF文件;具有良好的备份系统、动态的站点地图;具有垃圾过滤功能、支持LDAP轻量目录访问协议和微软的动态目录,并且很容易安装使用。
本文以昆明理工大学图书馆为例,分析了高校图书馆发展面临一些问题,针对用户对高校图书馆服务提出的新要求,指出图书馆的发展应结合web 2.0理念和云计算,走基于现代先进的信息检索技术的个性化、多样化的服务理念之路,为读者提供创造新的服务。通过对开源技术的特点及其功能分析,结合本校的经验,探讨了开源检索技术在高校图书馆应用的可行性,并为国内其他高校图书馆提供经验借鉴。
[1]钱嘉荔. Web2.0环境下的图书馆信息构建[J].科技情报开发与经济,2010,(2).
[2]王敬福.基于Web2.0的图书馆服务创新与创新服务[J].情报探索,2010,(1).
[3]陈洋.云计算与数字化图书馆技术发展[J].现在图书情报技术,2008,(173).
[4]王峰,汪华方.数字图书馆信息检索技术的智能化发展趋势[J].现在情报,2008,(11).
[5]徐勇.学术搜索引擎在科技查新中的应用[J].浙江高校图书情报工作,2009,(1).
[6]郭文丽.李书宁等.国外数字图书馆系统开源软件研究趋势[J].现代图书情报技术,2007,(3).
[7]开源JAVA搜索引擎[EB/OL].http://www.open-open.com/32.htm.
[8]开源PHP搜索引擎[EB/OL].http://www.php-open.com/37.htm.
[9]吴东辰.国内外几种主要搜索引擎比较[J].福建图书馆理论与实践,2005 (4):55-58/49.
[10]周鹏,吴华瑞.基于Nutch的农业搜索引擎的研究与设计[J].计算机工程与设计,2009,30 (3).
G25
A
1673-2219(2011)08-0059-04
2011-03-22
本文系云南省教育厅科学研究基金项目(项目编号09Y0088)成果之一。
孔云(1982-),男,云南南华人,硕士,昆明理工大学图书馆计算机部。杨婷(1979-),女,湖南永州人,硕士,昆明理工大学图书馆信息咨询部。
(责任编校:何俊华)