《支持全文检索的邮件代理服务平台-多邮箱管理及Lucene在邮件搜索上的应用》由会员分享,可在线阅读,更多相关《支持全文检索的邮件代理服务平台-多邮箱管理及Lucene在邮件搜索上的应用(45页珍藏版)》请在金锄头文库上搜索。
1、目 录摘要1ABSTRACT2第1章 引言31.1 课题背景31.2 国内外研究现状31.3 课题的目的和意义41.4 本章小结4第2章 相关技术及开发工具介绍52.1 J2EE简介52.2 Lucene62.3 开发环境及工具7第3章 系统总体设计83.1 总体设计框架83.2 系统基本功能83.3 数据库设计113.4 本章小结13第4章 部分系统模块详细设计与实现144.1 邮箱管理模块144.2 用户管理模块184.3 JMS应用194.4 本章小结22第5章 邮件检索模块详细设计与实现235.1 邮件的索引235.2 邮件的搜索275.3 搜索结果的高亮显示305.4 本章小结31第
2、6章 总结与展望326.1 系统总结326.2 系统实现部分效果图326.3 发展前景34谢辞35参考文献36附 录3735支持全文检索的邮件代理服务平台多邮箱管理及Lucene在邮件搜索上的应用摘要:本文阐述了设计与实现支持全文检索的邮件代理服务平台的理论基础,设计思想,整体架构等。其中最主要的是应用了J2EE中的JavaMail、JMS、EJB3中的消息驱动Bean和Lucene。本文着重阐述了Lucene全文索引及检索技术在该系统中的应用,包括索引的建立,索引的修改,搜索,对搜索结果的高亮显示等。关键字:J2EE;JavaMail;消息驱动Bean;Lucene;全文检索Support
3、Full-text Search Platform for E-mail Proxy ServiceManagement of Multiple Mailboxes and Application of Lucene in Mail SearchAbstract: This paper describes the design and implementation support for full-text indexing of e-mail proxy service platform based on the theory, design thinking, the overall st
4、ructure and so on. The most important is the use of J2EE in the JavaMail, JMS, EJB3 of Message-Driven Bean and Lucene.This article focuses on the Lucene full-text indexing and retrieval technology in the system, including the establishment of the index, index changes, and search on the highlighted s
5、earch results display.Key words: J2EE; JavaMail; Message-Driven Bean; Lucene; Full-text Search第1章 引言1.1 课题背景电子邮件是一种用电子手段提供信息交换的通信方式。是Internet应用最广的服务:通过网络的电子邮件系统,用户可以用非常低廉的价格,以非常快速的方式,与世界上任何一个角落的网络用户联系,这些电子邮件可以是文字、图像、声音等各种方式。同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保
6、存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。另外,电子邮件还可以进行一对多的邮件传递,同一邮件可以一次发送给许多人。最重要的是,电子邮件是整个网间网以至所有其他网络系统中直接面向人与人之间信息交流的系统,它的数据发送方和接收方都是人,所以极大地满足了大量存在的人与人通信的需求。当今社会是信息化的社会,人们并不仅仅满足于现有的电子邮件服务,由于移动办公的需要,电子邮件服务由单纯的客户端收发邮件发展到了Web邮件,但电子邮件的发展还未就此停止,现在的人群当中存在一大批人是拥有不止一个电子邮箱的,他们对电子邮件服务又有了新的需求,此时电子邮件服务就必须满足支持多个
7、邮箱管理的功能。1.2 国内外研究现状电子邮件发展到现在,用户使用电子邮件服务的方式有两种:一种是用户使用个人计算机上的客户端软件,比如Outlook,Foxmail等。Outlook是由美国微软公司(Microsoft)出品的免费软件,与Internet Explorer浏览器软件捆绑发行;Foxmail是由国人张小龙编写的一个功能强大非商业软件,它实现了真正的多用户、多账户、多POP3支持,自动进行拨号,能设置邮件过滤功能,能阅读和收发Big5码的邮件,可以直接查看HTML格式邮件。这两种客户端软件只要通过适当的配置后,就可以对邮件进行接收和发送,但单纯使用邮件客户端程序进行邮件的收发已经
8、不能满足用户移动办公的需要。另一种就是使用WebMail系统,将E-mail和Web结合在一起,即通过Web编程和适当的系统设置,使用户仅仅以访问Web的方式就可以得到和使用完整的邮件服务的系统称为WebMail系统。WebMail是目前Internet上最受欢迎和使用最多的服务之一,也是很多网站必备功能之一。像网易、新浪等大型门户网站都提供了免费的WebMail服务,并在其中加入了一些别的实用功能。如Google的GMail提供给邮箱用户网络硬盘,用户可以将一些电子资料存入网络硬盘中,并提供了全文检索的功能。现在许多WebMail系统在这些方面的改进越来越多,并在一定程度上满足了用户的要求,
9、但仅此还是不够的。1.3 课题的目的和意义本课题意在设计并实现一种支持全文检索的邮件代理服务平台,使用户进一步感受到电子邮件服务给他们带来的方便与快捷。虽然现有的邮件服务系统已经比较完善,但对于多个邮箱的支持还是比较少的,而且对多个邮箱中的文件进行统一管理的更少,因此有必要设计并实现一个支持多个邮箱收发邮件的系统。对于这种服务系统,虽然现在在用户中使用地比较少,而且专门提供类似服务的系统也不多。但随着电子邮件的发展,相信在这方面的需求会越来越突出,而这种系统将会越来越得到用户的青睐。1.4 本章小结本章主要介绍了支持全文检索的邮件代理服务平台的研究背景、国内外的研究状况及本课题的目的和意义。第
10、2章 相关技术及开发工具介绍2.1 J2EE简介J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlet API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩
11、短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能13。2.1.1 JavaMailJavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft
12、Outlook的应用程序。虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。在Windows 2000下使用需要指定这些文件的路径,在其它的操作系统上也类似。2.1.2 JMSJMS(Java Message Service
13、,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。JMS API定义了一组公共的应用程序接口和相应语法,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的Sonic MQ。通过使用JMS API,开发人员无需掌握不同消息产品的使用方法,也可以使用统一的JMS API来操纵各种消息中间件。通过使用JMS,能够最大限度地提升消息应用的可移植性。JMS既支持点对点的消息通信,也支持发布/订阅式的消息通信。2.1.3 EJB3EJB是sun的服务器端组件模型,最大的用处是部署分布式应用
14、程序,类似微软的com技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB(Enterprise Java Bean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。在J2EE里,Enterprise Java Beans(EJB)称为Java企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。 Session Bean用于实现业务逻辑,它可以是有状态的,也可
15、以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。 Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。 MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态 Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。2.2 LuceneLucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene