亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

郵件服務(wù)器及其進(jìn)行郵件全文搜索的方法

文檔序號:6549069閱讀:229來源:國知局
郵件服務(wù)器及其進(jìn)行郵件全文搜索的方法
【專利摘要】本發(fā)明公開了一種郵件服務(wù)器及其進(jìn)行郵件全文搜索的方法,所述方法包括:郵件服務(wù)器接收到客戶端提交的搜索命令后,從中解析出郵件用戶標(biāo)識和搜索關(guān)鍵字;獲取與郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含搜索關(guān)鍵字的各郵件的文本內(nèi)容在緩存文件中的偏移位置;針對每個確定出的偏移位置,從與緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址;將查找出的各郵件存儲地址下存儲的郵件向所述客戶端返回。由于郵件服務(wù)器在進(jìn)行郵件全文搜索之前將解碼得到的郵件的文本內(nèi)容存儲到緩存文件中,因此在進(jìn)行郵件全文搜索時,不需要獲取用戶的所有郵件并進(jìn)行解碼,縮短了搜索時間,降低了郵件服務(wù)器的負(fù)載。
【專利說明】 郵件服務(wù)器及其進(jìn)行郵件全文搜索的方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,尤其涉及一種郵件服務(wù)器及其進(jìn)行郵件全文搜索的方法。

【背景技術(shù)】
[0002]電子郵件采用儲存-轉(zhuǎn)發(fā)方式在網(wǎng)絡(luò)上逐步傳遞信息,具有傳播速度快、交流對象廣泛、成本低廉等特點(diǎn)。在當(dāng)前的互聯(lián)網(wǎng)信息化時代中,人們通過電子郵件進(jìn)行交流或通信的行為越來越普遍。
[0003]為便于用戶從郵箱中大量的郵件中查閱所需的郵件,一些郵箱服務(wù)提供商為用戶提供了郵件全文搜索功能,使得用戶可以通過搜索關(guān)鍵字進(jìn)行郵件搜索。而且,郵件全文搜索功能不僅支持收/發(fā)件人的郵件地址、郵件標(biāo)題的搜索,還支持郵件正文等的搜索?,F(xiàn)有的郵件服務(wù)器進(jìn)行郵件全文搜索的方法流程,如圖1所示,包括如下步驟:
[0004]SlOl:郵件服務(wù)器接收到客戶端發(fā)送的搜索命令時,解析出搜索命令中的郵件用戶標(biāo)識和搜索關(guān)鍵字。
[0005]具體地,用戶可以在客戶端通過IMAP (Internet Mail Access Protocol,交互郵件訪問協(xié)議)協(xié)議提交搜索命令到郵件服務(wù)器。
[0006]S102:郵件服務(wù)器確定出與解析出的郵件用戶標(biāo)識相對應(yīng)的郵件列表,并對于該郵件列表中的每封郵件,獲取該封郵件后進(jìn)行解碼,得到該封郵件的文本內(nèi)容。
[0007]具體地,基于IMAP協(xié)議的郵件服務(wù)器中的用戶郵件夾中保存有用戶的郵件,且這些郵件是未解碼的郵件。用戶可通過客戶端登錄到郵件服務(wù)器從本用戶郵件夾中讀取到這些郵件。在本步驟中,郵件服務(wù)器確定出與解析出的郵件用戶標(biāo)識相對應(yīng)的用戶郵件夾,得到該用戶郵件夾中的全部郵件的郵件列表,獲取該郵件列表中的各封郵件并進(jìn)行解碼(或解信)。其中,對郵件進(jìn)行解碼,也就是得到郵件的收/發(fā)件人的郵件地址、郵件標(biāo)題、郵件正文等文本內(nèi)容。
[0008]S103:郵件服務(wù)器對于每封郵件,若判定該封郵件的文本內(nèi)容中包含解析出的搜索關(guān)鍵字,則對該封郵件進(jìn)行標(biāo)記。
[0009]S104:郵件服務(wù)器將標(biāo)記過的各封郵件返回給客戶端。
[0010]然而,目前郵件服務(wù)器進(jìn)行郵件全文搜索時,需要對相關(guān)用戶的所有郵件進(jìn)行解碼操作,再依次對解碼后的所有郵件進(jìn)行搜索,整個搜索過程運(yùn)行時間非常長(整個搜索過程所耗費(fèi)的時間與相關(guān)用戶的郵件數(shù)量和郵件大小成正比關(guān)系),這樣搜索時間會很長,使得客戶端一直處于等待狀態(tài),一旦時間超出客戶端設(shè)定的超時時間,客戶端便會報錯導(dǎo)致搜索失敗,用戶不能得到所需的郵件。并且,由于需要對相關(guān)用戶的所有郵件進(jìn)行解碼操作,使得郵件服務(wù)器的負(fù)載會在短時間內(nèi)突然升高,易使得CPU被大量占用甚至占滿,進(jìn)而導(dǎo)致郵件服務(wù)器無法響應(yīng),影響郵件服務(wù)器的正常服務(wù)。
[0011]因此,有必要提供一種可以縮短搜索時間,并降低郵件服務(wù)器負(fù)載的郵件全文搜索方法。


【發(fā)明內(nèi)容】

[0012]針對上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明實(shí)施例提供了一種郵件服務(wù)器及其進(jìn)行郵件全文搜索的方法,用以縮短搜索時間、降低郵件服務(wù)器負(fù)載。
[0013]本發(fā)明實(shí)施例提供了一種郵件服務(wù)器進(jìn)行郵件全文搜索的方法,包括:
[0014]郵件服務(wù)器接收到客戶端提交的搜索命令后,解析出所述搜索命令中攜帶的郵件用戶標(biāo)識和搜索關(guān)鍵字;
[0015]獲取與所述郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在所述緩存文件中的偏移位置;
[0016]針對確定出的每個偏移位置,從與所述緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址;
[0017]將查找出的各郵件存儲地址下存儲的郵件向所述客戶端返回;
[0018]其中,所述緩存文件中存儲的郵件的文本內(nèi)容、以及所述索引數(shù)據(jù)表中對應(yīng)記錄的該郵件的存儲地址和該郵件的文本內(nèi)容在所述緩存文件中的偏移位置,是所述郵件服務(wù)器在接收到該郵件、對該郵件進(jìn)行解碼得到文本內(nèi)容后進(jìn)行存儲的。
[0019]其中,所述緩存文件可以為多個,且每個緩存文件對應(yīng)一個索引數(shù)據(jù)表;以及
[0020]所述針對確定出的每個偏移位置,從與所述緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址,具體為:
[0021]對于獲取的每個緩存文件,針對從該緩存文件中確定出的每個偏移位置,從與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址。
[0022]較佳地,所述搜索命令中還攜帶有搜索時間;以及每個緩存文件的屬性信息中包括郵件存儲起止時間;以及
[0023]所述獲取與所述郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在所述緩存文件中的偏移位置,具體包括:
[0024]查找出與所述郵件用戶標(biāo)識相對應(yīng)的各緩存文件,從查找出的各緩存文件中,確定出郵件存儲起止時間所對應(yīng)的時間段中包含所述搜索時間的緩存文件,獲取確定出的緩存文件;
[0025]從獲取的緩存文件中確定出在所述搜索時間內(nèi)寫入該緩存文件的郵件的文本內(nèi)容,進(jìn)而從確定出的郵件的文本內(nèi)容中,確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在該緩存文件中的偏移位置。
[0026]較佳地,所述從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在所述緩存文件中的偏移位置,具體包括:
[0027]對于獲取的每個緩存文件,從該緩存文件中確定出與所述搜索關(guān)鍵字相同的文本片段;對于從該緩存文件中確定出的每個文本片段,獲取該文本片段在該緩存文件中的偏移位置,并查找出與該緩存文件對應(yīng)的索引數(shù)據(jù)表中、小于等于該偏移位置的最大偏移位置,作為包含所述搜索關(guān)鍵字的郵件的文本內(nèi)容在該緩存文件中的偏移位置。
[0028]其中,所述郵件的文本內(nèi)容具體包括:收件人的郵件地址、發(fā)件人的郵件地址、郵件標(biāo)題、郵件正文、附件名稱、發(fā)件時間;以及
[0029]所述緩存文件中相鄰的兩個郵件的文本內(nèi)容之間寫有分割符。
[0030]本發(fā)明實(shí)施例還提供了一種郵件服務(wù)器,包括:
[0031]郵件內(nèi)容緩存模塊,用于對于所述郵件服務(wù)器接收的每個郵件,在對該郵件進(jìn)行解碼得到文本內(nèi)容后,在與該郵件的郵件用戶標(biāo)識所對應(yīng)的緩存文件中存儲該郵件的文本內(nèi)容,并將該郵件的文本內(nèi)容在所述緩存文件中的偏移位置對應(yīng)該郵件的存儲地址記錄到與所述緩存文件相對應(yīng)的索引數(shù)據(jù)表中;
[0032]搜索命令解析模塊,用于接收到客戶端提交的搜索命令后,將從所述搜索命令中解析出的郵件用戶標(biāo)識和搜索關(guān)鍵字輸出;
[0033]偏移位置確定模塊,用于獲取與所述搜索命令解析模塊輸出的郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在獲取的緩存文件中的偏移位置;
[0034]存儲地址查找模塊,用于確定出與所述偏移位置確定模塊獲取的緩存文件相對應(yīng)的索引數(shù)據(jù)表;并針對所述偏移位置確定模塊確定出的每個偏移位置,從確定出的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址;
[0035]郵件返回模塊,用于將所述存儲地址查找模塊查找出的各郵件存儲地址下存儲的郵件向所述客戶端返回。
[0036]其中,所述緩存文件可以為多個,且每個緩存文件對應(yīng)一個索引數(shù)據(jù)表;以及
[0037]所述存儲地址查找模塊具體用于對于所述偏移位置確定模塊獲取的每個緩存文件,針對所述偏移位置確定模塊從該緩存文件中確定出的每個偏移位置,從與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址。
[0038]進(jìn)一步,所述搜索命令中還攜帶有搜索時間;以及每個緩存文件的屬性信息中包括郵件存儲起止時間;以及
[0039]所述郵件內(nèi)容緩存模塊具體用于對于所述郵件服務(wù)器接收的每個郵件,在對該郵件進(jìn)行解碼得到文本內(nèi)容后,從與該郵件的郵件用戶標(biāo)識相對應(yīng)的各緩存文件中,查找郵件存儲起止時間所對應(yīng)的時間段中包含當(dāng)前時間的緩存文件;若查找到,則在查找到的緩存文件中存儲該郵件的文本內(nèi)容,并將該郵件的文本內(nèi)容在查找到的緩存文件中的偏移位置,對應(yīng)該郵件的存儲地址記錄到與確定出的緩存文件相對應(yīng)的索引數(shù)據(jù)表中;若未查找至IJ,則創(chuàng)建與該郵件的郵件用戶標(biāo)識相對應(yīng)的緩存文件,在該緩存文件中存儲該郵件的文本內(nèi)容,將該郵件的文本內(nèi)容在該緩存文件中的偏移位置對應(yīng)該郵件的存儲地址記錄到與確定出的緩存文件相對應(yīng)的索引數(shù)據(jù)表中,并設(shè)置該緩存文件的屬性信息中的郵件存儲起止時間;
[0040]所述偏移位置確定模塊具體用于查找出與所述搜索命令解析模塊輸出的郵件用戶標(biāo)識相對應(yīng)的各緩存文件,從查找出的各緩存文件中,確定出郵件存儲起止時間所對應(yīng)的時間段中包含所述搜索時間的緩存文件,獲取確定出的緩存文件;從獲取的緩存文件中確定出在所述搜索時間內(nèi)寫入該緩存文件的郵件的文本內(nèi)容,進(jìn)而從確定出的郵件的文本內(nèi)容中,確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在該緩存文件中的偏移位置。
[0041]較佳地,所述偏移位置確定模塊具體用于對于獲取的每個緩存文件,從該緩存文件中確定出與所述搜索關(guān)鍵字相同的文本片段;對于從該緩存文件中確定出的每個文本片段,獲取該文本片段在該緩存文件中的偏移位置,并查找出與該緩存文件對應(yīng)的索引數(shù)據(jù)表中、小于等于該偏移位置的最大偏移位置,作為包含所述搜索關(guān)鍵字的郵件的文本內(nèi)容在該緩存文件中的偏移位置。
[0042]其中,所述郵件的文本內(nèi)容具體包括:收件人的郵件地址、發(fā)件人的郵件地址、郵件標(biāo)題、郵件正文、附件名稱、發(fā)件時間;以及
[0043]所述緩存文件中相鄰的兩個郵件的文本內(nèi)容之間寫有分割符。
[0044]本發(fā)明的技術(shù)方案中,郵件服務(wù)器在進(jìn)行郵件全文搜索時,根據(jù)搜索關(guān)鍵字,對與用戶的郵件用戶標(biāo)識相對應(yīng)的緩存文件進(jìn)行搜索,從緩存文件中確定出包含搜索關(guān)鍵字的各郵件的文本內(nèi)容在該緩存文件中的偏移位置后,進(jìn)而從與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與各確定出的偏移位置對應(yīng)的郵件存儲地址,將查找到的郵件存儲地址下的郵件向客戶端返回即可。因此,郵件服務(wù)器進(jìn)行郵件全文搜索時,不再需要獲取相關(guān)用戶的所有郵件,也不需要對獲取的所有郵件進(jìn)行解碼,大大縮短了搜索時間。而且,郵件服務(wù)器在進(jìn)行郵件全文搜索之前,已經(jīng)將解碼得到的郵件的文本內(nèi)容存儲到緩存文件中,避免了進(jìn)行郵件全文搜索時郵件服務(wù)器的負(fù)載的突然升高,降低了郵件服務(wù)器的負(fù)載。

【專利附圖】

【附圖說明】
[0045]圖1為現(xiàn)有技術(shù)的郵件服務(wù)器進(jìn)行郵件全文搜索的方法流程圖;
[0046]圖2為本發(fā)明實(shí)施例的存儲郵件的文本內(nèi)容到緩存文件的方法流程圖;
[0047]圖3為本發(fā)明實(shí)施例的緩存文件中郵件的文本內(nèi)容的存儲方式的示意圖;
[0048]圖4為本發(fā)明實(shí)施例的一種郵件服務(wù)器進(jìn)行郵件全文搜索的方法流程圖;
[0049]圖5為本發(fā)明實(shí)施例的另一種郵件服務(wù)器進(jìn)行郵件全文搜索的方法流程圖;
[0050]圖6為本發(fā)明實(shí)施例的郵件服務(wù)器的內(nèi)部結(jié)構(gòu)框圖。

【具體實(shí)施方式】
[0051]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出優(yōu)選實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。然而,需要說明的是,說明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對本發(fā)明的一個或多個方面有一個透徹的理解,即便沒有這些特定的細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明的這些方面。
[0052]本申請使用的“模塊”、“系統(tǒng)”等術(shù)語旨在包括與計算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機(jī)。舉例來說,計算設(shè)備上運(yùn)行的應(yīng)用程序和此計算設(shè)備都可以是模塊。一個或多個模塊可以位于執(zhí)行中的一個進(jìn)程和/或線程內(nèi)。
[0053]本發(fā)明的發(fā)明人發(fā)現(xiàn),在進(jìn)行郵件投遞的過程中,為避免用戶收到大量的垃圾郵件、病毒郵件等,郵件服務(wù)器通常會在將郵件發(fā)送到用戶的收件箱之前,對郵件進(jìn)行解碼并對解碼得到的郵件的文本內(nèi)容進(jìn)行過濾處理。因此,本發(fā)明的發(fā)明人考慮到,可以在郵件服務(wù)器中創(chuàng)建針對每個用戶的緩存文件(cache文件),在郵件服務(wù)器進(jìn)行郵件全文搜索之前(例如對郵件進(jìn)行過濾處理后),預(yù)先將解碼得到的郵件的文本內(nèi)容保存在郵件服務(wù)器中該用戶的緩存文件中,然后將郵件的文本內(nèi)容在緩存文件中的偏移位置與郵件的存儲地址的對應(yīng)記錄到一個索引數(shù)據(jù)表中。
[0054]這樣,用戶在通過客戶端進(jìn)行郵件全文搜索時,郵件服務(wù)器可直接根據(jù)搜索關(guān)鍵字對存儲有該用戶的郵件的文本內(nèi)容的緩存文件進(jìn)行搜索,確定出包含搜索關(guān)鍵字的各郵件的文本內(nèi)容在該用戶的緩存文件中的偏移位置后,從與該用戶的緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與每個確定出的偏移位置對應(yīng)的郵件存儲地址,郵件服務(wù)器將查找到的郵件存儲地址下的郵件向客戶端返回即可。因此,郵件服務(wù)器進(jìn)行郵件全文搜索時,不再需要獲取相關(guān)用戶的所有郵件,也不需要對獲取的所有郵件進(jìn)行解碼,大大縮短了搜索時間。而且,郵件服務(wù)器在進(jìn)行郵件全文搜索之前,已經(jīng)將解碼得到的郵件的文本內(nèi)容存儲到緩存文件中,避免了進(jìn)行郵件全文搜索時郵件服務(wù)器的負(fù)載的突然升高,降低了郵件服務(wù)器的負(fù)載,不會影響郵件服務(wù)器的正常服務(wù)。
[0055]本發(fā)明實(shí)施例中的郵件服務(wù)器在根據(jù)用戶通過客戶端提交的搜索命令進(jìn)行郵件全文搜索之前,需要預(yù)先將該用戶的各郵件的文本內(nèi)容存儲到該用戶的緩存文件中,并將每封郵件的文本內(nèi)容在緩存文件中的偏移位置與該封郵件的郵件存儲地址對應(yīng)存儲到與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中。其中,該用戶的緩存文件與該用戶的郵件用戶標(biāo)識相對應(yīng),且該用戶的郵件用戶標(biāo)識可以是該用戶的郵件地址。
[0056]對于一個用戶,該用戶的郵箱中往往包括:該用戶作為收件人收到的郵件和該用戶作為發(fā)件人發(fā)送出去的郵件等??梢葬槍τ脩艚邮盏泥]件,得到存儲有用戶接收的郵件的文本內(nèi)容的緩存文件和相應(yīng)的索引數(shù)據(jù)表;也可以針對用戶發(fā)送的郵件,得到存儲有用戶發(fā)送的郵件的文本內(nèi)容的緩存文件和相應(yīng)的索引數(shù)據(jù)表。也就是說,針對一個用戶,與該用戶的郵件用戶標(biāo)識相對應(yīng)的緩存文件可以是一個,也可以是多個。
[0057]下面詳細(xì)介紹郵件服務(wù)器將接收的郵件的文本內(nèi)容存儲到緩存文件中,并得到與該緩存文件相對應(yīng)的索引數(shù)據(jù)表的方法,具體流程如圖2所示,包括如下步驟:
[0058]S201:郵件服務(wù)器接收到郵件后,對接收的郵件進(jìn)行解碼得到郵件的文本內(nèi)容。
[0059]其中,解碼得到的郵件的文本內(nèi)容具體包括:該郵件的收件人的郵件地址、發(fā)件人的郵件地址、郵件標(biāo)題、郵件正文、附件名稱、發(fā)件時間等。由于郵件的附件中可能包括較大的視頻、音頻、圖片等,為加快后續(xù)的搜索速度,可以只對附件名稱進(jìn)行解碼。
[0060]S202:郵件服務(wù)器將得到的郵件的文本內(nèi)容存儲到與該郵件的郵件用戶標(biāo)識相對應(yīng)的緩存文件中,并對接收的郵件進(jìn)行存儲。
[0061]具體地,若郵件服務(wù)器為該郵件的收件人側(cè)的郵件服務(wù)器,則該郵件的郵件用戶標(biāo)識也就是該郵件的收件人的郵件用戶標(biāo)識,郵件服務(wù)器可將得到的郵件的文本內(nèi)容存儲到與該郵件的收件人的郵件用戶標(biāo)識相對應(yīng)的緩存文件中,并將接收的郵件存儲到該郵件的收件人的用戶郵件夾中。較優(yōu)地,若郵件服務(wù)器為該郵件的收件人側(cè)的郵件服務(wù)器,則郵件服務(wù)器在得到該郵件的文本內(nèi)容后,可以先判斷該郵件的文本內(nèi)容是否符合設(shè)定條件,如本領(lǐng)域技術(shù)人員所熟知的判斷是否為垃圾郵件、是否為病毒郵件等。若郵件服務(wù)器判定該郵件的文本內(nèi)容符合設(shè)定條件,則將該郵件的文本內(nèi)容存儲到與該郵件的收件人的郵件用戶標(biāo)識相對應(yīng)的緩存文件中;并且,將該郵件存儲到與該郵件的收件人的郵件用戶標(biāo)識相對應(yīng)的收件郵件夾中后,獲取該郵件的存儲地址。這樣,收件人可以通過客戶端登錄到郵件服務(wù)器從本用戶郵件夾中讀取到該郵件。
[0062]若郵件服務(wù)器為該郵件的發(fā)件人側(cè)的郵件服務(wù)器,則該郵件的郵件用戶標(biāo)識也就是該郵件的發(fā)件人的郵件用戶標(biāo)識,郵件服務(wù)器可將得到的郵件的文本內(nèi)容存儲到與該郵件的發(fā)件人的郵件用戶標(biāo)識相對應(yīng)的緩存文件中,并將接收的郵件存儲到該郵件的發(fā)件人的發(fā)件郵件夾中后,獲取該郵件的存儲地址。例如,有些用戶會在郵箱中設(shè)置將本用戶發(fā)送出去的郵件也進(jìn)行保存,這樣該用戶側(cè)的郵件服務(wù)器也會將該用戶發(fā)送出去的郵件保存到發(fā)件人的發(fā)件郵件夾中。
[0063]其中,將一封郵件的文本內(nèi)容存儲到緩存文件中的過程可以包括:使用fopen或open函數(shù)打開緩存文件;使用fseek或Iseek函數(shù)偏移指針到緩存文件的結(jié)尾;使用fwrite或write函數(shù)寫分割符字符串到緩存文件結(jié)尾(即緩存文件中相鄰的兩個郵件的文本內(nèi)容之間寫有分隔符);偏移指針到緩存文件結(jié)尾,并取出當(dāng)前指針的位置作為該郵件的文本內(nèi)容在緩存文件中的偏移位置;使用fwrite或write函數(shù)將該郵件的文本內(nèi)容寫入緩存文件中。由此,該郵件的文本內(nèi)容在緩存文件中的偏移位置也就是該郵件的文本內(nèi)容的起始字符在緩存文件中的偏移位置。而且,緩存文件中的郵件的文本內(nèi)容可采用郵件頭(收件人的郵件地址、發(fā)件人的郵件地址、郵件標(biāo)題、發(fā)件時間等)、郵件內(nèi)容(即郵件正文)、附件名稱的方式進(jìn)行存儲,例如圖3所示。
[0064]S203:郵件服務(wù)器確定出得到的郵件的文本內(nèi)容在與該郵件的郵件用戶標(biāo)識相對應(yīng)的緩存文件中的偏移位置,將該偏移位置與該郵件的存儲地址對應(yīng)存儲到與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中。
[0065]具體地,可以將得到的郵件的文本內(nèi)容的起始字符在與該郵件的郵件用戶標(biāo)識相對應(yīng)的緩存文件中的偏移位置,作為該郵件的文本內(nèi)容在與該郵件的郵件用戶標(biāo)識相對應(yīng)的緩存文件中的偏移位置。
[0066]例如,若一個用戶的第1、2、…、η封郵件的文本內(nèi)容與該用戶的郵件用戶標(biāo)識相對應(yīng)的緩存文件cachefilel中的偏移位置分別為Pos[I]、Pos[2]、…、Pos[n];相應(yīng)地,第
1、2、…、η封郵件的郵件存儲地址為MailUrl [I]、MaiIUrl [2]、…、MaiIUrl [η],則與緩存文件cachefilel相對應(yīng)的索引數(shù)據(jù)表可如下表1所示。
[0067]表1

【權(quán)利要求】
1.一種郵件服務(wù)器進(jìn)行郵件全文搜索的方法,其特征在于,包括: 郵件服務(wù)器接收到客戶端提交的搜索命令后,解析出所述搜索命令中攜帶的郵件用戶標(biāo)識和搜索關(guān)鍵字; 獲取與所述郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在所述緩存文件中的偏移位置; 針對確定出的每個偏移位置,從與所述緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址; 將查找出的各郵件存儲地址下存儲的郵件向所述客戶端返回; 其中,所述緩存文件中存儲的郵件的文本內(nèi)容、以及所述索引數(shù)據(jù)表中對應(yīng)記錄的該郵件的存儲地址和該郵件的文本內(nèi)容在所述緩存文件中的偏移位置,是所述郵件服務(wù)器在接收到該郵件、對該郵件進(jìn)行解碼得到文本內(nèi)容后進(jìn)行存儲的。
2.如權(quán)利要求1所述的方法,其特征在于,所述緩存文件為多個,且每個緩存文件對應(yīng)一個索引數(shù)據(jù)表;以及 所述針對確定出的每個偏移位置,從與所述緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址,具體為: 對于獲取的每個 緩存文件,針對從該緩存文件中確定出的每個偏移位置,從與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址。
3.如權(quán)利要求2所述的方法,其特征在于,所述搜索命令中還攜帶有搜索時間;以及每個緩存文件的屬性信息中包括郵件存儲起止時間;以及 所述獲取與所述郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在所述緩存文件中的偏移位置,具體包括: 查找出與所述郵件用戶標(biāo)識相對應(yīng)的各緩存文件,從查找出的各緩存文件中,確定出郵件存儲起止時間所對應(yīng)的時間段中包含所述搜索時間的緩存文件,獲取確定出的緩存文件; 從獲取的緩存文件中確定出在所述搜索時間內(nèi)寫入該緩存文件的郵件的文本內(nèi)容,進(jìn)而從確定出的郵件的文本內(nèi)容中,確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在該緩存文件中的偏移位置。
4.如權(quán)利要求2或3所述的方法,其特征在于,所述從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在所述緩存文件中的偏移位置,具體包括: 對于獲取的每個緩存文件,從該緩存文件中確定出與所述搜索關(guān)鍵字相同的文本片段;對于從該緩存文件中確定出的每個文本片段,獲取該文本片段在該緩存文件中的偏移位置,并查找出與該緩存文件對應(yīng)的索引數(shù)據(jù)表中、小于等于該偏移位置的最大偏移位置,作為包含所述搜索關(guān)鍵字的郵件的文本內(nèi)容在該緩存文件中的偏移位置。
5.如權(quán)利要求4所述的方法,其特征在于,所述郵件的文本內(nèi)容具體包括:收件人的郵件地址、發(fā)件人的郵件地址、郵件標(biāo)題、郵件正文、附件名稱、發(fā)件時間;以及 所述緩存文件中相鄰的兩個郵件的文本內(nèi)容之間寫有分割符。
6.—種郵件服務(wù)器,其特征在于,包括: 郵件內(nèi)容緩存模塊,用于對于所述郵件服務(wù)器接收的每個郵件,在對該郵件進(jìn)行解碼得到文本內(nèi)容后,在與該郵件的郵件用戶標(biāo)識所對應(yīng)的緩存文件中存儲該郵件的文本內(nèi)容,并將該郵件的文本內(nèi)容在所述緩存文件中的偏移位置對應(yīng)該郵件的存儲地址記錄到與所述緩存文件相對應(yīng)的索引數(shù)據(jù)表中; 搜索命令解析模塊,用于接收到客戶端提交的搜索命令后,將從所述搜索命令中解析出的郵件用戶標(biāo)識和搜索關(guān)鍵字輸出; 偏移位置確定模塊,用于獲取與所述搜索命令解析模塊輸出的郵件用戶標(biāo)識相對應(yīng)的緩存文件,從獲取的緩存文件中確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在獲取的緩存文件中的偏移位置; 存儲地址查找模塊,用于確定出與所述偏移位置確定模塊獲取的緩存文件相對應(yīng)的索引數(shù)據(jù)表;并針對所述偏移位置確定模塊確定出的每個偏移位置,從確定出的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址; 郵件返回模塊,用于將所述存儲地址查找模塊查找出的各郵件存儲地址下存儲的郵件向所述客戶端返回。
7.如權(quán)利要求6所述的郵件服務(wù)器,其特征在于,所述緩存文件為多個,且每個緩存文件對應(yīng)一個索引數(shù)據(jù)表;以及 所述存儲地址查找模塊具體用于對于所述偏移位置確定模塊獲取的每個緩存文件,針對所述偏移位置確定模塊從該緩存文件中確定出的每個偏移位置,從與該緩存文件相對應(yīng)的索引數(shù)據(jù)表中查找出與該偏移位置對應(yīng)的郵件存儲地址。
8.如權(quán)利要求7所述的郵件服務(wù)器,其特征在于,所述搜索命令中還攜帶有搜索時間;以及每個緩存文件的屬性信息中包括郵件存儲起止時間;以及 所述郵件內(nèi)容緩存模塊具體用于對于所述郵件服務(wù)器接收的每個郵件,在對該郵件進(jìn)行解碼得到文本內(nèi)容后,從與該郵件的郵件用戶標(biāo)識相對應(yīng)的各緩存文件中,查找郵件存儲起止時間所對應(yīng)的時間段中包含當(dāng)前時間的緩存文件;若查找到,則在查找到的緩存文件中存儲該郵件的文本內(nèi)容,并將該郵件的文本內(nèi)容在查找到的緩存文件中的偏移位置,對應(yīng)該郵件的存儲地址記錄到與確定出的緩存文件相對應(yīng)的索引數(shù)據(jù)表中;若未查找到,則創(chuàng)建與該郵件的郵件用戶標(biāo)識相對應(yīng)的緩存文件,在該緩存文件中存儲該郵件的文本內(nèi)容,將該郵件的文本內(nèi)容在該緩存文件中的偏移位置對應(yīng)該郵件的存儲地址記錄到與確定出的緩存文件相對應(yīng)的索引數(shù)據(jù)表中,并設(shè)置該緩存文件的屬性信息中的郵件存儲起止時間; 所述偏移位置確定模塊具體用于查找出與所述搜索命令解析模塊輸出的郵件用戶標(biāo)識相對應(yīng)的各緩存文件,從查找出的各緩存文件中,確定出郵件存儲起止時間所對應(yīng)的時間段中包含所述搜索時間的緩存文件,獲取確定出的緩存文件;從獲取的緩存文件中確定出在所述搜索時間內(nèi)寫入該緩存文件的郵件的文本內(nèi)容,進(jìn)而從確定出的郵件的文本內(nèi)容中,確定出包含所述搜索關(guān)鍵字的各郵件的文本內(nèi)容在該緩存文件中的偏移位置。
9.如權(quán)利要求7或8所述的郵件服務(wù)器,其特征在于, 所述偏移位置確定模塊具體用于對于獲取的每個緩存文件,從該緩存文件中確定出與所述搜索關(guān)鍵字相同的文本片段;對于從該緩存文件中確定出的每個文本片段,獲取該文本片段在該緩存文件中的偏移位置,并查找出與該緩存文件對應(yīng)的索引數(shù)據(jù)表中、小于等于該偏移位置的最大偏移位置,作為包含所述搜索關(guān)鍵字的郵件的文本內(nèi)容在該緩存文件中的偏移位置。
10.如權(quán)利要求9所述的郵件服務(wù)器,其特征在于,所述郵件的文本內(nèi)容具體包括:收件人的郵件地址、發(fā)件人的郵件地址、郵件標(biāo)題、郵件正文、附件名稱、發(fā)件時間;以及所述緩存文件中相鄰的兩 個郵件的文本內(nèi)容之間寫有分割符。
【文檔編號】G06Q10/10GK104077363SQ201410254251
【公開日】2014年10月1日 申請日期:2014年6月10日 優(yōu)先權(quán)日:2014年6月10日
【發(fā)明者】宋健 申請人:新浪網(wǎng)技術(shù)(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1