基于Solr的企业级搜索引擎的设计_第1页
基于Solr的企业级搜索引擎的设计_第2页
基于Solr的企业级搜索引擎的设计_第3页
基于Solr的企业级搜索引擎的设计_第4页
基于Solr的企业级搜索引擎的设计_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于Solr的企业级搜索引擎的设计【摘要】分散的计算机上存储有大量的信息,企业级用户急需一种工具对这些零散的信息进行统一的查找,最好还可通过配置对特定的网站进行检索,这就是企业级搜索引擎,本文使用开源项目Solr设计了一款面向企业的搜索引擎。整体设计基于SSH设计框架实现;服务器端采用Heritrix抓取网页,加入IKAnalyzer增加中文分词功能;客户端采用Ajax技术实现异步通信,优化用户体验。

【关键词】Solr;Heritrix;SSH;企业级;搜索引擎

1.研究背景

随着Intenet的普及与企业信息化步伐的不断加快,在企业信息化的发展趋势下,越来越多的企业广泛地应用Intemet技术实现数据共享、业务集成与信息,信息内容也正在以惊人的速度增加。文件、图片、多媒体等非结构化数据存放零散,而企业内部业务系统有大量的结构化数据,如报表与业务功能,有时候要找到它们如同大海捞针,如果不及时解决这个问题,很多原来有价值的信息无法得到企业的有效利用。

目前许多企业级门户网站建立搜索引擎服务通常通过调用互联网搜索引擎的搜索服务,来实现对本站点的搜索。但是对于一个有很多子网站的企业门户网站来说,通用搜索引擎存在着很多缺陷,满足不了这种搜索服务要求,如:尽管通用引擎提供对指定站点内的查询,但是不能同时对多个站点同时查询;通用搜索引擎不能及时更新索引,会导致搜索结果不全和出现“坏链接”;调用通用搜索引擎的响应速度慢。总之,通用搜索引擎有很广的信息采集面,深度不够,它采取的是广度优先采集策略,而企业搜索需要深入挖掘与企业相关的所有信息,因此应采用深度优先的采集策略,同时由于某些行业网站或数据库的信息是动态更新的,而且更新频率很高,需要更频繁的抓取这些信息,因此企业搜索引擎正是应这种需求而产生。研究如何设计一个适用于企业信息检索的搜索引擎,具有重要的意义。文中采用Struts+Spring+Solr+Heritrix+IKAnalyzer的开发工具包,进行了一个中文全文搜索引擎的设计。

2.技术路线

2.1总体架构

该搜索引擎搜索部分框架可概括为Heritrix+Solr+IKAnalyzer,如图1所示。实现方案中,把Solr作为处理搜索结果的源和入口,Heritrix负责它最擅长的工作:抓取网页内容。使用Solr作为搜索后端,可以充分使用Solr的搜索特性:查询拼写检查,搜索提醒,数据复制及查询缓存等。考虑到Solr本身中文分词功能较弱,因此引用IKAnalyzer来增强其中文分词功能。

鉴于企业级搜索引擎需要部分定制功能,例如,可能会需要设定访问一些企业本身感兴趣的网站,以提高搜索的速度和精确度,因此需要配置系统维护接口,实现人工的实时定制。

Solr本身提供了灵活的特性,能够从文本、数据库和网页中直接导入数据,而企业本身也需要对检索到的信息进行整理分类,会希望搜索引擎能够提供一些人工智能和个性化的东西,因此在设计中加入了数据库的支持,以实现对网页内容的学习、分析和聚类等,从而可保证提供智能化结果。

2.2设计框架

系统设计采用基于SSH框架的三层结构,即表现层、业务层、持久层。

其中表现层使用struts框架,该层将直接面向用户,精美的UI将能够体现良好的可用性,本次设计用使用了开源的Yui-ext界面包,可增加弹窗、菜单等效果;使用的Ajax技术实现异步通信功能,提升用户的体验;利用struts框架与Yui-ext相结合,Yui-ext进行前台数据显示,而struts框架作为数据跳板向前台提供数据。

业务层使用spring框架,该层作为持久层数据与表现层之间数据传输的纽带,spring框架封装了DAO和JDBC模块,可以保持数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。

持久层使用Hibernate框架,目前,已经很少有人J2EE应用会直接以JDBC方式进行持久层访问,毕竟用面向对象的程序设计语言来访问关系型数据库令人沮丧;反之,多数人会以ORM框架来进行持久层访问,其中Hibernate框架灵巧、轻便,非常适用于持久层。

3.关键技术

3.1Solr简介

Solr是Apache的一个开源子项目,它是一个采用java5开发的、基于lucene全文搜索库的企业级搜索服务器,提供了丰富的查询语言,可根据用户需求配置和扩展,并对查询性能进行了优化。Solr提供了一个完善的功能管理界面,可输出多种格式,能够实现异构系统的整合,有强大的插件功能,使用它很容开发出一款优秀的企业级搜索引擎。

3.2Heritrix与Solr的整合

Heritrix与Solr的配置主要集中在服务器端,整个搜索的过程可以概括为,Heritrix爬虫抓取网页之后,编写相应的代码对爬虫抓取页面的遍历,将网页传递给JoyDoc框架,获取页面中的content,source,title等信息,建立数据库,然后使用Solr索引功能对网页数据库中的数据建立索引,从而实现全文搜索。其中,需要重新定制heritrix的Extractor方法,配置Heritrix根目录下的conf文件中的Heritrix文件。

3.3Struts+Spring+Hibernate的整合

SSH框架的整合直接影响到整个网站的用户体验和可用性,整合主要以下两个方面。

Struts整合Spring,可以将StrutsAction管理委托给Spring框架,整个过程需要两个步骤:

(1)Action中,使用IOC获得服务,配置struts-config.xml;

(2)Spring配置文件中注册该动作。

Spring整合Hibernate,在Spring框架中,像JDBCDataSource或HibernateSessionFactory这样的资源,在应用程序上下文中可以用bean实现。需要访问资源的应用程序对象只需通过bean引用得到这类预先定义好的实例的引用即可,需要三个步骤:

(1)配置数据源,一般情况下有三种方式的数据源;

(2)配置sessionfactory;

(3)配置事务。

3.4中文分词技术

中文分词对于搜索引擎来说是至关重要的指标,对于企业来说,绝大部分的搜索时针对中文索引,而Solr默认只支持引文索引,因此需要加入中文索引。

IKAnalyzer实现了以词典分词为基础的正反向全切分算法,适合于大部分用户的搜索习惯,如搜索时使用“人民”即可涵盖带有“人民币”的文章。对Solr加入中文索引,需要将IKAnalyzer的jar包导入/Tomcat6.0/webapps/solr的lib里,然后在solr/conf/schema.xml中节点下添加个类型,从而实现索引和查询的中文分词。

4.结语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论