1 引言
目前,如何从互联网这个庞大的信息资料库中获取数据,并进行有效地处理被认为是搜索技术的核心竞争点.所以,分布式技术被很好地应用到该领域,因为基于分布式技术构建的搜索引擎系统,能够基于其分布式等特点,有效地处理海量数据,并提供分布式检索服务,较好地解决了以往面临的种种问题.同传统单机搜索引擎相比,集群搜索引擎有以下优点[1]:
(1)各检索服务器之间协同工作,每个服务器只搜索自身自治区域内的信息资源,彼此之间只传递搜索结果信息,加快了检索速度,减轻网络及各站点的负担;(2)与网络资源本身的分布式特性相适应,增加搜索服务器方便,有良好的可扩展性;(3)索引信息分到各个数据库中,使得各索引数据库规模小,易于管理,缩短查询响应时间.
由于搜索引擎巨大的商业价值和学术研究价值,各大公司都在投巨资进行搜索引擎的研制开发,不断地涌现出新的具有鲜明特色的搜索引擎产品[2].同时,各大科研机构和大学纷纷展开对搜索引擎技术相关领域的学术研究,搜索引擎己经成为信息检索领域中最活跃的研究方向[3].集群搜索引擎的基本思想也就是把海量的网页数据进行分散存储,通过多机的处理能力,集中解决协同索引和检索的问题.利用大量结点整合计算资源,从而在数据可靠性和有有效性两方面来最大限度的满足用户的需求[4].中国有4亿网民,2亿多的搜索引擎活跃用户,毋庸置疑的成为搜索市场里不容忽视的一支力量.如何更好的服务于这一目标用户,在很大程度上影响了该搜索产品在中国的商业运作.
2 系统体系结构设计
2.1 设计目标集群式搜索引擎系统是一个主要针对企业内部各网站和应用系统的搜索引擎系统,用于从文档系统、数据库、知识管理系统等应用程序和企业内部网站中存储的大量企业信息中查找相关的信息.
集群式搜索引擎系统所要达到的目标有以下几个方面:
(1)无论数据在哪里、以何种形式存在,都能够对其实现快速访问.
(2)对于访问到的数据通过准确分词建立索引,方便搜索器快速查询.
(3)用户接口遵循易用性原则,操作简单,具备结果的显示、分类、错误提示、纠错、预览、搜索建议等完备的功能.
(4)具备完备的管理以及安全控制机制.
本系统采用Java语言开发,使用MyEclipse 集成开发工具,搭建Hadoop云计算平台,集成Solr和 Nutch进行开发,Solr作为处理搜索结果的源和入口,而 Nutch 作为插件负责爬虫以及创建索引的部分.这样设计充分利用了Solr Server的高级特性,同时也充分发挥Nutch最擅长的工作:抓取和提取内容.对于用户界面部分,则是按照Windows的IE浏览器规范来设计,采用HTML编写的文本框、按钮以及菜单等方式作为用户的使用接口,操作简单,具有较高的可操作性.本系统建立于基于Hadoop的云计算系统之上,通过云计算平台提高计算效率以及运行速度,使得存储和管理海量索引数据简单化.
2.2 系统功能本系统仍然是按照传统的搜索引擎,将系统划分为三个模块,分别为爬虫模块,与处理模块,检索模块,如图1所示:
2.3 搜索引擎整体结构爬虫从 Internet 中爬取众多的网页作为原始网页库存储于本地,然后网页分析器抽取网页中的主题内容交给分词器进行分词,得到的结果用索引器建立正排和倒排索引,这样就得到了索引数据库,用户查询时,在通过分词器切割输入的查询词组并通过检索器在索引数据库中进行查询,得到的结果返回给用户.其基本结构如图2所示:
无论搜索引擎的规模大小,其主要结构都是由这几部分构成的,并没有大的差别,搜索引擎的好坏主要是决定于各部分的内部实现.
3 系统部署及实现
3.1 系统开发环境硬件环境:I5 4核3.6G主频主机、2G内存、100G硬盘空间.软件环境:操作系统:CentOS 6.4中文版,开发工具:MyEclipse.
3.2 Hadoop及Zookeeper的配置通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker,这些机器是masters.余下的机器即作为DataNode也作为TaskTracker,这些机器是slaves.ssh必须安装并且保证sshd一直运行,并使用无密码链接的形式,以便用Hadoop 脚本管理端Hadoop守护进程.
3.3 Nutch与Solr的配置到用户主目录建立nutch文件夹,将nutch文件拷贝到该目录并解压缩.如果没用权限,可以使用chmod和chown授权.然后回到到用户主目录进入hadoop目录,拷贝Solr文件并解压缩.然后在tomcat目录下的conf\Catalina\localhost目录中创建solr.xml文件.修改tomcat的server.xml文件,最后启动tomcat,打开浏览器出现欢迎界面则表示配置成功.
4 结语
随着大数据时代的到来,人们急需从大量的数据中检索出来有用的数据.如果有了集群式的搜索引擎,那么就会快速高效的找到人们所需要的内容,从而提高工作效率.通过不断优化现有技术,搜索引擎能够进一步的简化操作过程,使用户更直接、方便、快速、高效地获取信息和知识.
参考文献
[1]邹康.基于Nutch的分布式搜索引擎的研究与实现[D].硕士学位论文,2015:12-29.
[2]袁威,薛安荣,周小梅.基于Nutch的分布式爬虫的优化研究[J].无线通信技术,2014(3):44-47+52.
[3]严春来.基于Nutch 的个性化搜索引擎的研究与探讨[J].软件开发与设计,2014(04):4-5.
[4]周世龙,陈兴蜀,罗永刚.Hadoop视角下的Nutch爬行性能优化[J].计算机应用,2013,33(10):2792-2795.