基于Servlet技术的分布式资源检索的研究

时间:2022-05-27 10:32:41

基于Servlet技术的分布式资源检索的研究

摘 要:随着海量数据的快速增长,信息的搜索被应用的越来越广泛。建立统一的,能够快速搜索资源的高效率系统显得越来越重要。本文初步探讨了基于Servlet技术的分布式网络资源检索系统,该系统实现了对内网服务器上的共享资源进行高效地分类、快速检索、预览以及下载等功能,保证资源流通共享性,防止“信息孤岛的形成”。对实现在海量数据中快速检索和资源优化具有一定的指导意义。

关键词:Servlet;Lucene引擎;检索

中图分类号:TP391.3

随着数据的海量增长,信息的搜索被应用的越来越广泛。网络上存在大量的资源共享服务器。这些服务器存储了一定量的资源,并以web服务的方式供用户和其它服务器访问。现存的问题在于不同服务器的资源组织方式往往不同,有的是通过数据库,有的是通过描述文件(如XML),而且数据库的种类和结构也有很大的差别,这就导致不同服务器之间资源共享和资源发现都十分困难。

本文正是针对上述问题,采用基于Servlet技术的分布式的资源检索策略则可以有效的解决这一问题。该策略的思想是当用户登陆任何一台服务器的时候,这个服务器除了要检索自己本地的资源以外,还可以作为一个客户端,自动地去连接其它服务器,发出检索请求,并将检索的结果进行合并和汇总,返回给用户。这样,用户只需要登陆任意一台服务器,就可以检索到大量所需资源,尽管这些资源来自于不同的服务器,但检索的过程对用户来说是透明的,用户检索和获取这些资源就如同检索和获取所请求的服务器上的资源一样。

1 Servlet技术的特点

对分布式框架我们为什么要使用Servlet,而不是使用是用RMI、P2P,因为Servlet和其他技术相比有很多的优势,包括:可移植性、功能强大、高效、耐久、安全、简洁、集成化、可扩展性、灵活性。用户登录的服务器向内网中所有开放远程Servlet的服务器发送检索请求,远程主机会对自己上面的资源进行检索,并使用一定的格式来返回数据,通过获取Servlet的打开流来获得检索结果。大大减少了配置和系统不必要的开销。用户界面采用基于Windows操作系统的B/S的用户界面的规范来设计,努力做到界面美观和易用。使用test.xml为数据库,通过解析来访问。基于Servlet技术它具有以下特点:(1)数据精确度。该系统为用户提供多种查询服务,包括分词检索、快速检索和全文检索。并提供了表达式查询法,大大增强了查询的功能,保证查全率和查准率;(2)时间特性。该系统采用两种不同的搜索模块:Web services和Socket。Web services的优点是平台无关性,别的平台可以根据我们提供的WSDL来连接查询。而对于用java语言开发的平台,可以采用Socket来连接,提高查询效率。一般操作响应时间应在1秒左右;(3)灵活性。该系统由于采用了两种不同的搜索模块,实现了具有平台无关性的Web services作为搜索模块,做到了真正意义上的平台无关。

2 基于Servlet技术的分布式资源检索的解决方案

2.1 系统架构

局域网内分布式检索基于Servlet技术为基础,采用B/S架构,即Browser/Server(浏览器/服务器)模式进行构建。在局域网环境下,每台主机上的%Tomcat_Home%\webapps文件夹下存放一个test.xml和一个resources文件夹(存放资源用),该test.xml文件内容是本机resources文件夹下每条资源的描述信息。检索时就是通过检索这个test.xml文件来查找资源的。测试的主机会安装所需的服务器和部署我们的检索系统。

动态添加删除服务器的实现:动态添加服务器的实现是在服务器启动时自动执行一个初始化的Servlet,用来通知内网所有部署了本项目的服务器,将新开启的服务器加入服务器列表中,实现动态添加。关于动态删除服务器方面,由于服务器分为正常关闭和当机两种情况,虽然方式不同,但对于结果一样,都是无法检索服务器上得资源,所以我们在检索的过程中一旦发现服务器无法正常连接,就将无效的服务器自动从服务器列表中剔除,下次检索时就排除掉本台主机。同时也可以手动将某台服务器加入黑名单。

全文检索、分词、部分预览的实现:使用Lucene引擎来实现全文检索功能,在启动服务器的同时,对本主机上所有的资源建立索引,以便更好更快的进行全文检索。对检索条件进行分词后再进行检索可以提高检索资源的相关度,返回更多用户需要的信息。预览功能预览文件的部分相关内容,第一时间让用户确定检索到的文件中的内容,这几种功能该系统都是通过Lucene来实现,保证了统一高效。

检索结果显示的实现:对于资源预览的实现,该系统将后台生成的资源路径,在返回前台之前对资源路径进行预处理,按照用户检索条件的相关性进行排序,最符合检索条件的最先出现,同时增加分词高亮显示等功能,并对资源进行分类,前台通过JQuery来实现显示方面的效果及功能,来获得良好的用户体验。

2.2 主要功能

(1)快速检索功能。快速检索是针对用户输入的关键字进行精确且快速的检索,只对资源标题进行匹配,不进行分词检索,所以检索所需时间一般比较少。适合用户对某些特殊专有名词检索;(2)分词检索功能。分词检索功能是系统最常用的功能,系统会与用户输入的检索条件中某一部分词汇进行匹配,相比快速检索,会返回更多相关的资源给用户,但是分词检索可能会带给用户一些无用的数据结果;(3)全文检索功能。全文检索是对文字类文件的全文内容进行检索,通常需要的时间比较长,但是返回的结果内容也是最符合用户要求的。有时候用户更需要检索文档内部的关键字,所以选择全文检索功能会为用户节省不少宝贵的时间;(4)后台管理功能。本系统的后台管理功能可以对主机上得资源和test.xml同步进行增加、删除和修改等,同时可以添加删除资源服务器,将某些服务器加入黑名单。也可以设置敏感词汇,过滤搜索到的资源结果,让别的主机无法检索到带敏感词汇的资源;(5)资源预览功能。利用POI实现对主流文档的读取,采用Lucene引擎中读取pdf的方法来实现对pdf的预览,同时可以预览图片、大部分视频和音频等文件,通过JQuery控制图片和视频的显示,给用户良好的体验。

3 结束语

建立合理高效的基于Servlet技术的检索系统解决方案是加快搜索速度的重要目标,本文在Servlet的特点基础上初步探讨了针对用户难以检索到自己需要的资源的解决方案,它保证资源流通共享性,防止“信息孤岛的形成”,提高了搜索引擎的运行效率。利用该检索系统解决方案很好地满足了当前在海量数据里面搜索有效数据的需要,通过进一步提高检索效率对用户使用该检索系统起到良好的推动和促进作用。

参考文献:

[1]闫术卓,杨强.程序天下―Strusts2技术详解[M].北京:电子工业出版社,2008(06).

[2]贾素玲,王强,姚琪琳.XML技术应用[M].北京:清华大学出版社,2007.

[3]耿详义,张跃平.JSP实用教程[M].北京:清华大学出版社,2007.

[4]Otis Gospodnetic,Erik Hatcher.Lucene IN ATION[M].北京:电子工业出版社,2007.

[5]李刚,宋伟,邱哲.Ajax+Lucene[M].北京:人民邮电出版社,2006.

[6]卢菊平,郭江杰.精通JSP+XML+CSS网络开发混合编程[M].北京:电子工业出版社,2006.

作者简介:王莉(1991-),女,湖北荆州人,硕士,研究方向:移动云计算;杜友福(1961-),男,湖北麻城人,教授,研究方向:数据库技术、人工智能技术、网络安全技术等;王同喜(1972-),男,湖北黄冈人,副教授,研究方向:软件工程、数据库原理及应用、JAVA程序设计等。

作者单位:长江大学 计算机科学学院,湖北荆州 434023

上一篇:基于嵌入式的智能家居系统研究与实现 下一篇:RFID标签中有机补偿电路的设计