邮件服务器及其进行邮件全文搜索的方法

文档序号:6549069阅读:210来源:国知局
邮件服务器及其进行邮件全文搜索的方法
【专利摘要】本发明公开了一种邮件服务器及其进行邮件全文搜索的方法,所述方法包括:邮件服务器接收到客户端提交的搜索命令后,从中解析出邮件用户标识和搜索关键字;获取与邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含搜索关键字的各邮件的文本内容在缓存文件中的偏移位置;针对每个确定出的偏移位置,从与缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址;将查找出的各邮件存储地址下存储的邮件向所述客户端返回。由于邮件服务器在进行邮件全文搜索之前将解码得到的邮件的文本内容存储到缓存文件中,因此在进行邮件全文搜索时,不需要获取用户的所有邮件并进行解码,缩短了搜索时间,降低了邮件服务器的负载。
【专利说明】 邮件服务器及其进行邮件全文搜索的方法

【技术领域】
[0001]本发明涉及互联网【技术领域】,尤其涉及一种邮件服务器及其进行邮件全文搜索的方法。

【背景技术】
[0002]电子邮件采用储存-转发方式在网络上逐步传递信息,具有传播速度快、交流对象广泛、成本低廉等特点。在当前的互联网信息化时代中,人们通过电子邮件进行交流或通信的行为越来越普遍。
[0003]为便于用户从邮箱中大量的邮件中查阅所需的邮件,一些邮箱服务提供商为用户提供了邮件全文搜索功能,使得用户可以通过搜索关键字进行邮件搜索。而且,邮件全文搜索功能不仅支持收/发件人的邮件地址、邮件标题的搜索,还支持邮件正文等的搜索。现有的邮件服务器进行邮件全文搜索的方法流程,如图1所示,包括如下步骤:
[0004]SlOl:邮件服务器接收到客户端发送的搜索命令时,解析出搜索命令中的邮件用户标识和搜索关键字。
[0005]具体地,用户可以在客户端通过IMAP (Internet Mail Access Protocol,交互邮件访问协议)协议提交搜索命令到邮件服务器。
[0006]S102:邮件服务器确定出与解析出的邮件用户标识相对应的邮件列表,并对于该邮件列表中的每封邮件,获取该封邮件后进行解码,得到该封邮件的文本内容。
[0007]具体地,基于IMAP协议的邮件服务器中的用户邮件夹中保存有用户的邮件,且这些邮件是未解码的邮件。用户可通过客户端登录到邮件服务器从本用户邮件夹中读取到这些邮件。在本步骤中,邮件服务器确定出与解析出的邮件用户标识相对应的用户邮件夹,得到该用户邮件夹中的全部邮件的邮件列表,获取该邮件列表中的各封邮件并进行解码(或解信)。其中,对邮件进行解码,也就是得到邮件的收/发件人的邮件地址、邮件标题、邮件正文等文本内容。
[0008]S103:邮件服务器对于每封邮件,若判定该封邮件的文本内容中包含解析出的搜索关键字,则对该封邮件进行标记。
[0009]S104:邮件服务器将标记过的各封邮件返回给客户端。
[0010]然而,目前邮件服务器进行邮件全文搜索时,需要对相关用户的所有邮件进行解码操作,再依次对解码后的所有邮件进行搜索,整个搜索过程运行时间非常长(整个搜索过程所耗费的时间与相关用户的邮件数量和邮件大小成正比关系),这样搜索时间会很长,使得客户端一直处于等待状态,一旦时间超出客户端设定的超时时间,客户端便会报错导致搜索失败,用户不能得到所需的邮件。并且,由于需要对相关用户的所有邮件进行解码操作,使得邮件服务器的负载会在短时间内突然升高,易使得CPU被大量占用甚至占满,进而导致邮件服务器无法响应,影响邮件服务器的正常服务。
[0011]因此,有必要提供一种可以缩短搜索时间,并降低邮件服务器负载的邮件全文搜索方法。


【发明内容】

[0012]针对上述现有技术存在的缺陷,本发明实施例提供了一种邮件服务器及其进行邮件全文搜索的方法,用以缩短搜索时间、降低邮件服务器负载。
[0013]本发明实施例提供了一种邮件服务器进行邮件全文搜索的方法,包括:
[0014]邮件服务器接收到客户端提交的搜索命令后,解析出所述搜索命令中携带的邮件用户标识和搜索关键字;
[0015]获取与所述邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在所述缓存文件中的偏移位置;
[0016]针对确定出的每个偏移位置,从与所述缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址;
[0017]将查找出的各邮件存储地址下存储的邮件向所述客户端返回;
[0018]其中,所述缓存文件中存储的邮件的文本内容、以及所述索引数据表中对应记录的该邮件的存储地址和该邮件的文本内容在所述缓存文件中的偏移位置,是所述邮件服务器在接收到该邮件、对该邮件进行解码得到文本内容后进行存储的。
[0019]其中,所述缓存文件可以为多个,且每个缓存文件对应一个索引数据表;以及
[0020]所述针对确定出的每个偏移位置,从与所述缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址,具体为:
[0021]对于获取的每个缓存文件,针对从该缓存文件中确定出的每个偏移位置,从与该缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址。
[0022]较佳地,所述搜索命令中还携带有搜索时间;以及每个缓存文件的属性信息中包括邮件存储起止时间;以及
[0023]所述获取与所述邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在所述缓存文件中的偏移位置,具体包括:
[0024]查找出与所述邮件用户标识相对应的各缓存文件,从查找出的各缓存文件中,确定出邮件存储起止时间所对应的时间段中包含所述搜索时间的缓存文件,获取确定出的缓存文件;
[0025]从获取的缓存文件中确定出在所述搜索时间内写入该缓存文件的邮件的文本内容,进而从确定出的邮件的文本内容中,确定出包含所述搜索关键字的各邮件的文本内容在该缓存文件中的偏移位置。
[0026]较佳地,所述从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在所述缓存文件中的偏移位置,具体包括:
[0027]对于获取的每个缓存文件,从该缓存文件中确定出与所述搜索关键字相同的文本片段;对于从该缓存文件中确定出的每个文本片段,获取该文本片段在该缓存文件中的偏移位置,并查找出与该缓存文件对应的索引数据表中、小于等于该偏移位置的最大偏移位置,作为包含所述搜索关键字的邮件的文本内容在该缓存文件中的偏移位置。
[0028]其中,所述邮件的文本内容具体包括:收件人的邮件地址、发件人的邮件地址、邮件标题、邮件正文、附件名称、发件时间;以及
[0029]所述缓存文件中相邻的两个邮件的文本内容之间写有分割符。
[0030]本发明实施例还提供了一种邮件服务器,包括:
[0031]邮件内容缓存模块,用于对于所述邮件服务器接收的每个邮件,在对该邮件进行解码得到文本内容后,在与该邮件的邮件用户标识所对应的缓存文件中存储该邮件的文本内容,并将该邮件的文本内容在所述缓存文件中的偏移位置对应该邮件的存储地址记录到与所述缓存文件相对应的索引数据表中;
[0032]搜索命令解析模块,用于接收到客户端提交的搜索命令后,将从所述搜索命令中解析出的邮件用户标识和搜索关键字输出;
[0033]偏移位置确定模块,用于获取与所述搜索命令解析模块输出的邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在获取的缓存文件中的偏移位置;
[0034]存储地址查找模块,用于确定出与所述偏移位置确定模块获取的缓存文件相对应的索引数据表;并针对所述偏移位置确定模块确定出的每个偏移位置,从确定出的索引数据表中查找出与该偏移位置对应的邮件存储地址;
[0035]邮件返回模块,用于将所述存储地址查找模块查找出的各邮件存储地址下存储的邮件向所述客户端返回。
[0036]其中,所述缓存文件可以为多个,且每个缓存文件对应一个索引数据表;以及
[0037]所述存储地址查找模块具体用于对于所述偏移位置确定模块获取的每个缓存文件,针对所述偏移位置确定模块从该缓存文件中确定出的每个偏移位置,从与该缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址。
[0038]进一步,所述搜索命令中还携带有搜索时间;以及每个缓存文件的属性信息中包括邮件存储起止时间;以及
[0039]所述邮件内容缓存模块具体用于对于所述邮件服务器接收的每个邮件,在对该邮件进行解码得到文本内容后,从与该邮件的邮件用户标识相对应的各缓存文件中,查找邮件存储起止时间所对应的时间段中包含当前时间的缓存文件;若查找到,则在查找到的缓存文件中存储该邮件的文本内容,并将该邮件的文本内容在查找到的缓存文件中的偏移位置,对应该邮件的存储地址记录到与确定出的缓存文件相对应的索引数据表中;若未查找至IJ,则创建与该邮件的邮件用户标识相对应的缓存文件,在该缓存文件中存储该邮件的文本内容,将该邮件的文本内容在该缓存文件中的偏移位置对应该邮件的存储地址记录到与确定出的缓存文件相对应的索引数据表中,并设置该缓存文件的属性信息中的邮件存储起止时间;
[0040]所述偏移位置确定模块具体用于查找出与所述搜索命令解析模块输出的邮件用户标识相对应的各缓存文件,从查找出的各缓存文件中,确定出邮件存储起止时间所对应的时间段中包含所述搜索时间的缓存文件,获取确定出的缓存文件;从获取的缓存文件中确定出在所述搜索时间内写入该缓存文件的邮件的文本内容,进而从确定出的邮件的文本内容中,确定出包含所述搜索关键字的各邮件的文本内容在该缓存文件中的偏移位置。
[0041]较佳地,所述偏移位置确定模块具体用于对于获取的每个缓存文件,从该缓存文件中确定出与所述搜索关键字相同的文本片段;对于从该缓存文件中确定出的每个文本片段,获取该文本片段在该缓存文件中的偏移位置,并查找出与该缓存文件对应的索引数据表中、小于等于该偏移位置的最大偏移位置,作为包含所述搜索关键字的邮件的文本内容在该缓存文件中的偏移位置。
[0042]其中,所述邮件的文本内容具体包括:收件人的邮件地址、发件人的邮件地址、邮件标题、邮件正文、附件名称、发件时间;以及
[0043]所述缓存文件中相邻的两个邮件的文本内容之间写有分割符。
[0044]本发明的技术方案中,邮件服务器在进行邮件全文搜索时,根据搜索关键字,对与用户的邮件用户标识相对应的缓存文件进行搜索,从缓存文件中确定出包含搜索关键字的各邮件的文本内容在该缓存文件中的偏移位置后,进而从与该缓存文件相对应的索引数据表中查找出与各确定出的偏移位置对应的邮件存储地址,将查找到的邮件存储地址下的邮件向客户端返回即可。因此,邮件服务器进行邮件全文搜索时,不再需要获取相关用户的所有邮件,也不需要对获取的所有邮件进行解码,大大缩短了搜索时间。而且,邮件服务器在进行邮件全文搜索之前,已经将解码得到的邮件的文本内容存储到缓存文件中,避免了进行邮件全文搜索时邮件服务器的负载的突然升高,降低了邮件服务器的负载。

【专利附图】

【附图说明】
[0045]图1为现有技术的邮件服务器进行邮件全文搜索的方法流程图;
[0046]图2为本发明实施例的存储邮件的文本内容到缓存文件的方法流程图;
[0047]图3为本发明实施例的缓存文件中邮件的文本内容的存储方式的示意图;
[0048]图4为本发明实施例的一种邮件服务器进行邮件全文搜索的方法流程图;
[0049]图5为本发明实施例的另一种邮件服务器进行邮件全文搜索的方法流程图;
[0050]图6为本发明实施例的邮件服务器的内部结构框图。

【具体实施方式】
[0051]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
[0052]本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内。
[0053]本发明的发明人发现,在进行邮件投递的过程中,为避免用户收到大量的垃圾邮件、病毒邮件等,邮件服务器通常会在将邮件发送到用户的收件箱之前,对邮件进行解码并对解码得到的邮件的文本内容进行过滤处理。因此,本发明的发明人考虑到,可以在邮件服务器中创建针对每个用户的缓存文件(cache文件),在邮件服务器进行邮件全文搜索之前(例如对邮件进行过滤处理后),预先将解码得到的邮件的文本内容保存在邮件服务器中该用户的缓存文件中,然后将邮件的文本内容在缓存文件中的偏移位置与邮件的存储地址的对应记录到一个索引数据表中。
[0054]这样,用户在通过客户端进行邮件全文搜索时,邮件服务器可直接根据搜索关键字对存储有该用户的邮件的文本内容的缓存文件进行搜索,确定出包含搜索关键字的各邮件的文本内容在该用户的缓存文件中的偏移位置后,从与该用户的缓存文件相对应的索引数据表中查找出与每个确定出的偏移位置对应的邮件存储地址,邮件服务器将查找到的邮件存储地址下的邮件向客户端返回即可。因此,邮件服务器进行邮件全文搜索时,不再需要获取相关用户的所有邮件,也不需要对获取的所有邮件进行解码,大大缩短了搜索时间。而且,邮件服务器在进行邮件全文搜索之前,已经将解码得到的邮件的文本内容存储到缓存文件中,避免了进行邮件全文搜索时邮件服务器的负载的突然升高,降低了邮件服务器的负载,不会影响邮件服务器的正常服务。
[0055]本发明实施例中的邮件服务器在根据用户通过客户端提交的搜索命令进行邮件全文搜索之前,需要预先将该用户的各邮件的文本内容存储到该用户的缓存文件中,并将每封邮件的文本内容在缓存文件中的偏移位置与该封邮件的邮件存储地址对应存储到与该缓存文件相对应的索引数据表中。其中,该用户的缓存文件与该用户的邮件用户标识相对应,且该用户的邮件用户标识可以是该用户的邮件地址。
[0056]对于一个用户,该用户的邮箱中往往包括:该用户作为收件人收到的邮件和该用户作为发件人发送出去的邮件等。可以针对用户接收的邮件,得到存储有用户接收的邮件的文本内容的缓存文件和相应的索引数据表;也可以针对用户发送的邮件,得到存储有用户发送的邮件的文本内容的缓存文件和相应的索引数据表。也就是说,针对一个用户,与该用户的邮件用户标识相对应的缓存文件可以是一个,也可以是多个。
[0057]下面详细介绍邮件服务器将接收的邮件的文本内容存储到缓存文件中,并得到与该缓存文件相对应的索引数据表的方法,具体流程如图2所示,包括如下步骤:
[0058]S201:邮件服务器接收到邮件后,对接收的邮件进行解码得到邮件的文本内容。
[0059]其中,解码得到的邮件的文本内容具体包括:该邮件的收件人的邮件地址、发件人的邮件地址、邮件标题、邮件正文、附件名称、发件时间等。由于邮件的附件中可能包括较大的视频、音频、图片等,为加快后续的搜索速度,可以只对附件名称进行解码。
[0060]S202:邮件服务器将得到的邮件的文本内容存储到与该邮件的邮件用户标识相对应的缓存文件中,并对接收的邮件进行存储。
[0061]具体地,若邮件服务器为该邮件的收件人侧的邮件服务器,则该邮件的邮件用户标识也就是该邮件的收件人的邮件用户标识,邮件服务器可将得到的邮件的文本内容存储到与该邮件的收件人的邮件用户标识相对应的缓存文件中,并将接收的邮件存储到该邮件的收件人的用户邮件夹中。较优地,若邮件服务器为该邮件的收件人侧的邮件服务器,则邮件服务器在得到该邮件的文本内容后,可以先判断该邮件的文本内容是否符合设定条件,如本领域技术人员所熟知的判断是否为垃圾邮件、是否为病毒邮件等。若邮件服务器判定该邮件的文本内容符合设定条件,则将该邮件的文本内容存储到与该邮件的收件人的邮件用户标识相对应的缓存文件中;并且,将该邮件存储到与该邮件的收件人的邮件用户标识相对应的收件邮件夹中后,获取该邮件的存储地址。这样,收件人可以通过客户端登录到邮件服务器从本用户邮件夹中读取到该邮件。
[0062]若邮件服务器为该邮件的发件人侧的邮件服务器,则该邮件的邮件用户标识也就是该邮件的发件人的邮件用户标识,邮件服务器可将得到的邮件的文本内容存储到与该邮件的发件人的邮件用户标识相对应的缓存文件中,并将接收的邮件存储到该邮件的发件人的发件邮件夹中后,获取该邮件的存储地址。例如,有些用户会在邮箱中设置将本用户发送出去的邮件也进行保存,这样该用户侧的邮件服务器也会将该用户发送出去的邮件保存到发件人的发件邮件夹中。
[0063]其中,将一封邮件的文本内容存储到缓存文件中的过程可以包括:使用fopen或open函数打开缓存文件;使用fseek或Iseek函数偏移指针到缓存文件的结尾;使用fwrite或write函数写分割符字符串到缓存文件结尾(即缓存文件中相邻的两个邮件的文本内容之间写有分隔符);偏移指针到缓存文件结尾,并取出当前指针的位置作为该邮件的文本内容在缓存文件中的偏移位置;使用fwrite或write函数将该邮件的文本内容写入缓存文件中。由此,该邮件的文本内容在缓存文件中的偏移位置也就是该邮件的文本内容的起始字符在缓存文件中的偏移位置。而且,缓存文件中的邮件的文本内容可采用邮件头(收件人的邮件地址、发件人的邮件地址、邮件标题、发件时间等)、邮件内容(即邮件正文)、附件名称的方式进行存储,例如图3所示。
[0064]S203:邮件服务器确定出得到的邮件的文本内容在与该邮件的邮件用户标识相对应的缓存文件中的偏移位置,将该偏移位置与该邮件的存储地址对应存储到与该缓存文件相对应的索引数据表中。
[0065]具体地,可以将得到的邮件的文本内容的起始字符在与该邮件的邮件用户标识相对应的缓存文件中的偏移位置,作为该邮件的文本内容在与该邮件的邮件用户标识相对应的缓存文件中的偏移位置。
[0066]例如,若一个用户的第1、2、…、η封邮件的文本内容与该用户的邮件用户标识相对应的缓存文件cachefilel中的偏移位置分别为Pos[I]、Pos[2]、…、Pos[n];相应地,第
1、2、…、η封邮件的邮件存储地址为MailUrl [I]、MaiIUrl [2]、…、MaiIUrl [η],则与缓存文件cachefilel相对应的索引数据表可如下表1所示。
[0067]表1

【权利要求】
1.一种邮件服务器进行邮件全文搜索的方法,其特征在于,包括: 邮件服务器接收到客户端提交的搜索命令后,解析出所述搜索命令中携带的邮件用户标识和搜索关键字; 获取与所述邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在所述缓存文件中的偏移位置; 针对确定出的每个偏移位置,从与所述缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址; 将查找出的各邮件存储地址下存储的邮件向所述客户端返回; 其中,所述缓存文件中存储的邮件的文本内容、以及所述索引数据表中对应记录的该邮件的存储地址和该邮件的文本内容在所述缓存文件中的偏移位置,是所述邮件服务器在接收到该邮件、对该邮件进行解码得到文本内容后进行存储的。
2.如权利要求1所述的方法,其特征在于,所述缓存文件为多个,且每个缓存文件对应一个索引数据表;以及 所述针对确定出的每个偏移位置,从与所述缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址,具体为: 对于获取的每个 缓存文件,针对从该缓存文件中确定出的每个偏移位置,从与该缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址。
3.如权利要求2所述的方法,其特征在于,所述搜索命令中还携带有搜索时间;以及每个缓存文件的属性信息中包括邮件存储起止时间;以及 所述获取与所述邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在所述缓存文件中的偏移位置,具体包括: 查找出与所述邮件用户标识相对应的各缓存文件,从查找出的各缓存文件中,确定出邮件存储起止时间所对应的时间段中包含所述搜索时间的缓存文件,获取确定出的缓存文件; 从获取的缓存文件中确定出在所述搜索时间内写入该缓存文件的邮件的文本内容,进而从确定出的邮件的文本内容中,确定出包含所述搜索关键字的各邮件的文本内容在该缓存文件中的偏移位置。
4.如权利要求2或3所述的方法,其特征在于,所述从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在所述缓存文件中的偏移位置,具体包括: 对于获取的每个缓存文件,从该缓存文件中确定出与所述搜索关键字相同的文本片段;对于从该缓存文件中确定出的每个文本片段,获取该文本片段在该缓存文件中的偏移位置,并查找出与该缓存文件对应的索引数据表中、小于等于该偏移位置的最大偏移位置,作为包含所述搜索关键字的邮件的文本内容在该缓存文件中的偏移位置。
5.如权利要求4所述的方法,其特征在于,所述邮件的文本内容具体包括:收件人的邮件地址、发件人的邮件地址、邮件标题、邮件正文、附件名称、发件时间;以及 所述缓存文件中相邻的两个邮件的文本内容之间写有分割符。
6.—种邮件服务器,其特征在于,包括: 邮件内容缓存模块,用于对于所述邮件服务器接收的每个邮件,在对该邮件进行解码得到文本内容后,在与该邮件的邮件用户标识所对应的缓存文件中存储该邮件的文本内容,并将该邮件的文本内容在所述缓存文件中的偏移位置对应该邮件的存储地址记录到与所述缓存文件相对应的索引数据表中; 搜索命令解析模块,用于接收到客户端提交的搜索命令后,将从所述搜索命令中解析出的邮件用户标识和搜索关键字输出; 偏移位置确定模块,用于获取与所述搜索命令解析模块输出的邮件用户标识相对应的缓存文件,从获取的缓存文件中确定出包含所述搜索关键字的各邮件的文本内容在获取的缓存文件中的偏移位置; 存储地址查找模块,用于确定出与所述偏移位置确定模块获取的缓存文件相对应的索引数据表;并针对所述偏移位置确定模块确定出的每个偏移位置,从确定出的索引数据表中查找出与该偏移位置对应的邮件存储地址; 邮件返回模块,用于将所述存储地址查找模块查找出的各邮件存储地址下存储的邮件向所述客户端返回。
7.如权利要求6所述的邮件服务器,其特征在于,所述缓存文件为多个,且每个缓存文件对应一个索引数据表;以及 所述存储地址查找模块具体用于对于所述偏移位置确定模块获取的每个缓存文件,针对所述偏移位置确定模块从该缓存文件中确定出的每个偏移位置,从与该缓存文件相对应的索引数据表中查找出与该偏移位置对应的邮件存储地址。
8.如权利要求7所述的邮件服务器,其特征在于,所述搜索命令中还携带有搜索时间;以及每个缓存文件的属性信息中包括邮件存储起止时间;以及 所述邮件内容缓存模块具体用于对于所述邮件服务器接收的每个邮件,在对该邮件进行解码得到文本内容后,从与该邮件的邮件用户标识相对应的各缓存文件中,查找邮件存储起止时间所对应的时间段中包含当前时间的缓存文件;若查找到,则在查找到的缓存文件中存储该邮件的文本内容,并将该邮件的文本内容在查找到的缓存文件中的偏移位置,对应该邮件的存储地址记录到与确定出的缓存文件相对应的索引数据表中;若未查找到,则创建与该邮件的邮件用户标识相对应的缓存文件,在该缓存文件中存储该邮件的文本内容,将该邮件的文本内容在该缓存文件中的偏移位置对应该邮件的存储地址记录到与确定出的缓存文件相对应的索引数据表中,并设置该缓存文件的属性信息中的邮件存储起止时间; 所述偏移位置确定模块具体用于查找出与所述搜索命令解析模块输出的邮件用户标识相对应的各缓存文件,从查找出的各缓存文件中,确定出邮件存储起止时间所对应的时间段中包含所述搜索时间的缓存文件,获取确定出的缓存文件;从获取的缓存文件中确定出在所述搜索时间内写入该缓存文件的邮件的文本内容,进而从确定出的邮件的文本内容中,确定出包含所述搜索关键字的各邮件的文本内容在该缓存文件中的偏移位置。
9.如权利要求7或8所述的邮件服务器,其特征在于, 所述偏移位置确定模块具体用于对于获取的每个缓存文件,从该缓存文件中确定出与所述搜索关键字相同的文本片段;对于从该缓存文件中确定出的每个文本片段,获取该文本片段在该缓存文件中的偏移位置,并查找出与该缓存文件对应的索引数据表中、小于等于该偏移位置的最大偏移位置,作为包含所述搜索关键字的邮件的文本内容在该缓存文件中的偏移位置。
10.如权利要求9所述的邮件服务器,其特征在于,所述邮件的文本内容具体包括:收件人的邮件地址、发件人的邮件地址、邮件标题、邮件正文、附件名称、发件时间;以及所述缓存文件中相邻的两 个邮件的文本内容之间写有分割符。
【文档编号】G06Q10/10GK104077363SQ201410254251
【公开日】2014年10月1日 申请日期:2014年6月10日 优先权日:2014年6月10日
【发明者】宋健 申请人:新浪网技术(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1