APP下载

基于Android平台的邮件检索系统的研究与设计

2015-11-13张璇予

电脑知识与技术 2015年23期

张璇予

摘要:电子邮件应用在日常事务处理中有着重要地位,由于电子邮件数量的大幅增加,电子邮件的检索变得更加重要。该文针对现今大多数手机邮箱忽略个人邮件的检索功能,尤其是高级检索,主要研究基于Android智能手机的邮件检索系统。该系统除实现对收/发件人、主题、正文等进行检索外,还增加了针对邮件附件内容的检索功能。为此,增加邮件解析模块,对附件内容格式的解析,针对不同类型的文档,判断其类型并进行解析。解析、提取完成之后,继续建立索引、检索等一系列操作,实现邮件信息检索的功能。

关键词:Android;邮件检索;Lucene;索引

中图分类号:TP93 文献标识码:A 文章编号:1009-3044(2015)23-0042-02

全文检索是一种主要以文档的内容为处理对象,提供按照文档内容检索的检索方式。它首先需要为全文集合建立索引,这个索引能精确定位到每个字词,效率比较高,而传统顺序索引在文档较多和查询条件复杂的情况下检索效率比较低。Lucene是一个用Java语言编写的开放源代码的全文检索引擎架构,而不是一个完整的全文检索引擎,但它提供了完整的查询、索引引擎和部分文本分析引擎。本系统主要是针对Android智能手机平台来运用全文检索技术。

1 总体设计

基于Android平台的邮件检索系统主要分为两类:索引建立模块和检索模块。索引建立模块主要是完成索引的建立、维护以及更新等操作。检索模块主要是负责根据用户需求查询检索,是对索引建立程序部分的一种检测和证明,根据用户键入的指定信息,构建所需各项元素,然后调用Lucene相应检索程序,并获得返回的搜索结果的邮件路径列表。

索引建立过程调用全文检索引擎工具包Lucene,但其索引的基本步骤还是在全文检索的基础之上。首先要有需要建立索引的待索引邮件,并调用邮件解析程序分别获得邮件各字段以及正文和附件文本。然后将这些待索引邮件传给分词组件,分词组件将他们分成一个个单独的词,然后通过去停留词格式化处理。经过分词处理得到的词和经过索引文件列表得到的文件ID就可以得到邮件索引表。索引建立过程结束。

检索过程图展示邮件检索过程,其一般步骤如下。

2 详细设计

在用户登录界面,用户可以自己选择输入的账号、密码,并且有记住密码和自动登录的选择权,整个界面应当简洁易用。邮件查询界面是本系统的重点部分,点击后,可以分类输入查询关键字,可以根据主题、收件人、发件人、附件内容、正文以及全文等范围进行搜索。本系统借助了Lucene搜索引擎工具包,对邮件中所有非结构化数据,收/发件人、邮件主题、正文以及附件等内容建立索引,提高检索效率,减少搜索时间,方便用户快速的使用手机等便携设备搜索邮件。Lucene是通过Java编制,具备对Java社区各种功能包的支持,Android主流开发语言也是Java,两者有很好的结合性,都是借助Java技术,可以缩短开发时间,优化功能设备。

2.1 邮件获取、解析

邮件获取过程为先提取邮件头字段,在得到“Content-Type”后,根据邮件的类型,可判断邮件是否为复合类型,若“Content-Type”字段的值属性为离散媒体类型,则将邮件的收\发件人、主题、时间、MIME版本和邮件内容的类型等字段以及正文和附件文本等信息提取出来。

经过邮件获取模块对邮件的获取后,能够获得该邮件的各字段和正文以及附件信息。电子邮件包含的文档类型多样,不仅仅局限于文本格式,包含多种常用文档类型:doc、docx、ppt、eml、pdf、wps、rar、zip等。采用解析模块进行解析后,提取相应的文档文本,把文本文档和邮件各字段信息存储入数据库中,就可以方便快速地建立索引了。

2.2 索引类模块

索引过程可分解为两部分,分别是:数据存储、索引建立。

数据的存储包括两部分存储结构:外部数据存储、内部数据存储。本系统的外部数据,如邮件列表显示界面,写邮件、联系人、邮件检索和收件人。这类数据很少发生变化,存储采用的是文件存储数据。内部数据存储,随着邮件的增加、删减、更新等变化,需要经常进行存取操作,采用的是SQLite数据库存储数据。Android对数据库的读写操作的控制,为了兼顾数据读写和空间开销,是通过在Java逻辑层的数据窗口机制来实现的。

2.3 检索与呈现

本系统的搜索模块同样是调用Lucene中的搜索API。与一般的搜索引擎的流程一致,Lucene的检索查询也按照基本的检索流程操作。Lucene通过Search方法完成搜索后,剩下的就是如何把搜索结果呈现给用户了。

具体流程为:首先进行查询请求,请求后开始中文分词并进入到邮件索引数据库进行匹配,若匹配不成功返回重新进行中文分词,直到匹配成功后进行记录文档并将关键词遍历完检索库,若检索不成功返回邮件索引数据库,索引成功后开始分析重要性并排序,最后反馈给用户,呈现结果。

3 邮件检索系统测试

在Android系统下,根据需求分析、总体设计、详细设计等步骤后,完成了邮件检索系统的研究与开发工作,现在对其提出的功能要求等一一验证,测试的结果显示,邮件检索系统的各项需求已经实现。

4 总结

本文通过分析现在市场上邮箱手机客户端的现状,针对Android智能手机的高市场占有率,电子邮件的普遍使用,设计并实现了一种基于Android平台的邮件检索系统。本系统主要针对这个问题,不同于普通的手机邮箱客户端,而是以其为基础,设计了可以全面检索邮件信息的邮件检索系统。本邮件检索系统的设计与实现,为今后在智能手机上的邮件信息检索的深入研究打下了基础。

参考文献:

[1] 张海江.Android平台下手机资源搜索系统的研究与设计[D].金华: 浙江师范大学, 2013.

[2] 智能手机行业分析.前瞻网[EB/OL]. (2014-02-05)http://www.docin.com/p-696137084.html.

[3] 高斯帕那.Lucene in action[M].牛长流,肖宇,译. 北京:人民邮电出版社, 2011.