TW201413479A - 郵件索引建立方法及系統,郵件搜尋方法及系統 - Google Patents
郵件索引建立方法及系統,郵件搜尋方法及系統 Download PDFInfo
- Publication number
- TW201413479A TW201413479A TW101146914A TW101146914A TW201413479A TW 201413479 A TW201413479 A TW 201413479A TW 101146914 A TW101146914 A TW 101146914A TW 101146914 A TW101146914 A TW 101146914A TW 201413479 A TW201413479 A TW 201413479A
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- inverted index
- level
- keyword
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明實施例公開了郵件索引建立方法及系統、郵件搜尋方法及系統,該郵件索引建立方法包括:對待建立索引的當前郵件進行分詞得到當前郵件的關鍵字;依據當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄;判斷一級快取中的一級倒排索引記錄的大小是否到達第一預設閾值,如果是,則將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中;判斷當前二級快取檔案的大小是否到達第二預設閾值,如果是,則依據路徑檔案將二級快取檔案中的二級倒排索引記錄讀取至三級倒排索引檔案。採用本發明實施例的方法或系統,可以有效地提高建立索引的效率,提升硬碟IO性能。進一步的,基於上述建立索引的方法建立的索引進行郵件查詢時,也能夠提高搜尋結果的效率。
Description
本發明涉及網路資料處理領域,特別是涉及郵件索引建立方法及系統、郵件搜尋方法及系統。
目前,隨著網際網路通訊越來越普及,越來越多的用戶採用郵件進行溝通,而在用戶的郵件達到一定數量之後,郵箱檢索也越來越處於資料搜尋的重要位置。郵箱檢索基於郵箱索引的建立,即是對於某個用戶來講,其所有的郵件都會透過郵箱索引進行檢索。
現有技術有這樣一種郵件索引建立方法,主要採用倒排索引方式建立郵箱索引,例如,有3個郵件檔案名為doc_id1,doc_id2,以及doc_id3,其中都包含“hello the world”,則每一個關鍵字的倒排索引記錄就如下所示:hello->doc_id1,doc_id2,doc_id3,the->doc_id1,doc_id2,doc_id3,world->doc_id1,doc_id2,doc_id3;將上述倒排索引記錄存放至倒排索引檔案,再記錄每個倒排索引記錄在倒排索引檔案中的偏移位置及長度,並將該偏移位置寫入詞典檔案,寫入方式如下所示:{“hello”:{“file_path":"/xxx/倒排索引檔案","offset":0}};假設用戶檢索包括“hello”的郵件,就能夠從詞典
檔案中找出包含該關鍵字的所有郵件,即找到“/xxx/倒排索引檔案”這個位址,然後打開該倒排索引檔案讀取偏移量“0”的位置,即可以讀到{doc_id1,doc_id2,doc_id3}三個郵件。
但是在增加新郵件的時候,為了保證搜尋結果的完整性需要更新倒排索引檔案。例如增加一封新郵件為doc_id4,該郵件也包含“hello the world”共3個關鍵字,則此時需要倒排索引記錄更新如下:hello->doc_id1,doc_id2,doc_id3,doc_id4,the->doc_id1,doc_id2,doc_id3,doc_id4,world->doc_id1,doc_id2,doc_id3,doc_id4;而如果把更新後的倒排索引記錄存放至倒排索引檔案,“the->doc_id1,doc_id2,doc_id3,doc_id4”和“world->doc_id1,doc_id2,doc_id3,doc_id4”這兩個倒排索引記錄都需要在倒排索引檔案中改變其原本的儲存位置,同時也需要修改詞典檔案裏對應的偏移量(offset)值。
所以前述建立倒排索引檔案的方式下,當每次增加一個新郵件時,都需要移動倒排索引檔案的其他相關資料內容。
發明人在研究過程中發現,基於前述的郵件索引建立方法進行郵箱檢索,就需要在整個倒排索引檔案中進行關鍵字的搜尋,而隨著郵件資料規模的增大,對於億級別的用戶的郵箱伺服器來說,如果平均每個用戶一千封郵件,
那麽郵件總數即可達到千億級別(即和網際網路的全網網頁規模接近,全網目前有千億級的網頁數量),就不可避免的會導致對硬碟IO資源的大量佔用,也使得無法快速實現對郵箱的索引。進一步的,郵箱伺服器對於海量郵件的儲存成本也很高,造成大量的儲存資源被佔用。
本發明所要解決的技術問題是,提供一種郵件索引建立方法及系統,郵件搜索搜尋方法及系統,以解決按照現有技術中建立索引的方式導致的郵件搜尋會導致硬碟IO資源的大量佔用,也使得無法快速實現對郵箱的索引的技術問題,進一步的,還能解決郵箱伺服器對於海量郵寄的儲存成本過高造成的儲存資源大量被佔用的技術問題。
為解決上述技術問題,本發明實施例提供了一種郵件索引建立方法,該方法包括:對待建立索引的當前郵件進行分詞得到所述當前郵件的關鍵字;依據所述當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄;判斷所述一級快取中的一級倒排索引記錄的大小是否到達第一預設閾值,如果是,則將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中;判斷當前二級快取檔案的大小是否到達第二預設閾值,如果是,則依據路徑檔案將所述二級快取檔案中的所有
二級倒排索引記錄讀取至三級倒排索引檔案,所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
可選的,所述將所述二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案之後,還包括:判斷所述三級倒排索引檔案的大小是否到達第三預設閾值,如果是,則將所述三級倒排索引檔案分裂為兩個倒排索引子檔案;依據分裂後的兩個倒排索引子檔案更新路徑檔案。
可選的,所述將所述二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,包括:將所述二級快取檔案中的所有二級倒排索引記錄讀取至記憶體中;依據路徑檔案確定所述二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;將所述二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案。
可選的,所述將所述二級快取檔案中的所有倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案,具體為:將所述二級快取檔案中的所有倒排索引記錄按照關鍵字以追加方式讀取至確定的三級倒排索引檔案。
可選的,所述三級倒排索引檔案包括初始靜態壓縮檔案和增量檔案;則所述將所述二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案,具體為:
將所述二級倒排索引記錄按照關鍵字讀取至所述增量檔案;則所述將所述二級快取檔案中的所有倒排索引記錄讀取至三級倒排索引檔案之後,還包括:判斷所述增量檔案是否超過增量閾值,如果是,則解壓縮所述初始靜態壓縮檔案以得到解壓縮後的初始靜態檔案;合併所述初始靜態檔案和所述增加檔案得到合併檔案,並將合併檔案進行壓縮以產生當前靜態壓縮檔案。
一種郵件搜尋方法,採用前述方法建立郵箱索引;該搜尋方法包括:獲取用戶提交的待搜尋的關鍵字;依據路徑檔案確定所述關鍵字對應的三級倒排索引檔案;所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係;從所述三級倒排索引檔案中獲取所述關鍵字所在的第一郵件集合,從一級快取中獲取所述關鍵字所在的第二郵件集合,以及,從所述二級快取檔案中獲取所述關鍵字所在的第三郵件集合;合併所述第一郵件集合、第二郵件集合和第三郵件集合以獲得搜尋結果。
一種郵件索引建立系統,包括:分詞單元,用於對待建立索引的當前郵件進行分詞得到所述當前郵件的關鍵字;
更新一級快取單元,用於依據所述當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄;第一判斷單元,用於判斷所述一級快取中的一級倒排索引記錄的大小是否到達第一預設閾值;第一讀取單元,用於在所述第一判斷單元的結果為是的情況下,將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中;第二判斷單元,用於判斷當前二級快取檔案的大小是否到達第二預設閾值;第二讀取單元,用於在所述第二判斷單元的結果為是的情況下,依據路徑檔案將所述二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
可選的,還包括:第三判斷單元,用於判斷所述三級倒排索引檔案的大小是否到達第三預設閾值;分離單元,用於在所述第三判斷單元的結果為是的情況下,將所述三級倒排索引檔案分裂為兩個倒排索引子檔案;更新路徑單元,用於依據分裂後的兩個倒排索引子檔案更新路徑檔案。
可選的,所述第二讀取單元包括:第一讀取模組,用於將所述二級快取檔案中的所有二級倒排索引記錄讀取至記憶體中;
確定模組,用於依據路徑檔案確定所述二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;第二讀取模組,用於將所述二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案。
可選的,所述第二讀取模組具體用於:將所述二級快取檔案中的所有倒排索引記錄按照關鍵字以追加方式讀取至確定的三級倒排索引檔案。
可選的,所述三級倒排索引檔案包括初始靜態壓縮檔案和增量檔案;則所述第二讀取模組具體用於:將所述二級倒排索引記錄按照關鍵字讀取至所述增量檔案;則所述裝置還包括:第四判斷單元,用於判斷所述增量檔案是否超過增量閾值;解壓縮單元,用於在所述第四判斷單元的結果為是的情況下,解壓縮所述初始靜態壓縮檔案以得到解壓縮後的初始靜態檔案;合併單元,用於合併所述初始靜態檔案和所述增加檔案得到合併檔案;壓縮單元,用於將合併檔案進行壓縮以產生當前靜態壓縮檔案。
一種郵件搜尋系統,包括:前述的郵件索引建立系統;還包括:關鍵字獲取單元,用於獲取用戶提交的待搜尋的關鍵
字;確定單元,用於依據路徑檔案確定所述關鍵字對應的三級倒排索引檔案;所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係;第一郵件集合獲取單元,用於從所述三級倒排索引檔案中獲取所述關鍵字所在的第一郵件集合;第二郵件集合獲取單元,用於從一級快取中獲取所述關鍵字所在的第二郵件集合;第三郵件集合獲取單元,用於從所述二級快取檔案中獲取所述關鍵字所在的第三郵件集合;搜尋結果獲取單元,用於合併所述第一郵件集合、第二郵件集合和第三郵件集合以獲得搜尋結果。
從上述的技術方案可以看出,本發明實施例中公開的郵件索引建立方法,因為採用一級快取、二級快取檔案和三級倒排索引檔案的方式,對郵件建立的倒排索引記錄可以先儲存至一級快取中,在一級快取達到第一預設閾值時,再將一級快取中的一級倒排索引記錄一次性全部轉移至二級快取檔案中,並在二級快取檔案達到第二預設閾值時,再將其中的二級倒排索引記錄一次性全部轉移至三級倒排索引檔案中,這樣就能避免因為郵件的倒排索引記錄過多而導致的對硬碟的寫入次數過多的現象,從而使得建立郵件索引的過程中增加倒排索引記錄的寫入速度,從而不僅提升了郵件索引的建立速度,也能減少對磁片的寫入次數過多而造成的衝擊,就提升了磁片的IO性能。
進一步的,本發明實施例中的郵件索引有一部分是存在一級快取即是記憶體中的,因此硬碟上就不會儲存全部的郵件索引,因此,頻繁的插入新郵件時,由於緩衝在記憶體裏就不會對磁片的寫入造成過大的衝擊,並且可以透過提高最新資料的速度來達到搜尋即時性的目的。
對三級倒排索引檔案也設置了第三預設閾值,當三級倒排索引檔案的大小達到第三預設閾值的時候,就將其分裂為兩個倒排索引子檔案,並且該倒排索引子檔案也要保證不大於第三預設閾值,透過這種方式,就可以保證每一個三級倒排索引檔案的大小不會過大,進而能夠保證對於郵件索引的讀取速度。
將三級倒排索引檔案分為壓縮的初始靜態檔案,以及增量檔案,則可以在實現提升郵件索引的建立速度,也減少對磁片的寫入次數過多而造成的衝擊,提升磁片的IO性能的同時,也能夠進一步的節省三級倒排索引檔案的儲存資源。
當然,實施本發明的任一產品並不一定需要同時達到以上所述的所有優點。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基於本發
明中的實施例,本領域普通技術人員在沒有做出創造性工作前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明可用於衆多通用或專用的計算系統環境或配置中。例如:個人電腦、伺服器電腦、手持設備或攜帶型設備、平板型設備、多處理器系統、基於微處理器的系統、機上盒、可編程的消費電子設備、網路PC、小型電腦、大型電腦、包括以上任何系統或設備的分散式計算環境等等。
本發明可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式計環境中實踐本發明,在這些分散式計算環境中,由透過通訊網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存介質中。
本發明的主要思想之一可以包括,採用一級快取、二級快取檔案和三級倒排索引檔案的方式,其中,一級快取設置在記憶體中,而二級快取檔案和三級倒排索引檔案設置在硬碟上,而對郵件建立的倒排索引記錄可以先儲存至一級快取中,在一級快取達到第一預設閾值時,再將一級快取中的一級倒排索引記錄一次性全部轉移至二級快取檔案中,並在二級快取檔案達到第二預設閾值時,再將其中
的二級倒排索引記錄一次性全部轉移至三級倒排索引檔案中。這種建立郵件索引的過程可以減少對硬碟的讀寫次數,進而提升硬碟的IO性能。
參見圖1,示出了本發明的一種郵件索引建立方法實施例1的流程圖,本實施例可以包括以下步驟:
步驟101:對待建立索引的當前郵件進行分詞得到所述當前郵件的關鍵字。
本發明實施例在實施時,對於需要建立索引的當前郵件進行分詞可以得到當前郵件的關鍵字,在實際應用中,如果需要只對郵件本文建立索引,則本步驟可以只對郵件本文進行分詞,而如果郵件主題也需要作為建立索引的依據,則本步驟就需要對郵件本文和郵件主題都進行分詞以得到郵件的關鍵字。本領域技術人員可以根據實際需求選擇分詞工具實現本步驟。
可以理解的是,用戶每接收到一封新郵件,都可以對該新郵件執行本發明實施例公開的郵件索引建立方法。
步驟102:依據所述當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄。
在對當前郵件進行分詞之後,產生關鍵字與郵件對應的倒排索引記錄,例如假設當前郵件的標識為“doc5”,而該當前郵件有兩個關鍵字,分別為“keyword1”和“keyword5”,則產生如下所示的倒排索引記錄:keyword1:doc5,keyword5:doc5;
需要說明的是,在本發明實施例中,在記憶體中設置一級快取來儲存初始倒排索引記錄,即是當前郵件最先產生的倒排索引記錄一開始只存在記憶體中的一級快取裏,其中一級快取中的倒排索引記錄的“key”是各個關鍵字(keyword),“value”為郵件的標識。假設在本實施例中,一級緩衝的初始倒排索引記錄為:keyword1:doc1,doc2,doc3,keyword2:doc1,doc4;那麽依據當前郵件新產生的倒排索引記錄更新一級快取中的初始倒排索引記錄之後,更新後的倒排索引記錄如下所示:keyword1:doc1,doc2,doc3,doc5,keyword2:doc1,doc4,keyword5:doc5。
步驟103:判斷所述一級快取中一級倒排索引記錄的大小是否到達第一預設閾值,如果是,則進入步驟104,如果否,則進入步驟107。
在本發明實施例中,設置兩級快取來實現對硬碟IO操作的次數。其中,一級快取設置在記憶體中,即是記憶體方式的倒排索引記錄,二級快取檔案則設置在硬碟上。每一次對新郵件進行分詞得到倒排索引記錄之後,先寫入該一級快取中。當記憶體中的該一級快取達到設置的第一預設閥值,例如2M時再將一級快取中的倒排索引記錄全部寫入二級緩衝檔案。
而可以理解的是,當一級快取的大小沒有到達第一預設閾值,則該一級快取中對於當前郵件的倒排索引記錄的寫入操作成功,即是已經將當前郵件的倒排索引記錄儲存至一級快取中,後續用戶進行搜尋時如果該當前郵件符合搜尋要求,就可以從一級快取中搜尋到該當前郵件,則結束當前郵件的索引建立流程。
步驟104:將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中。
如果一級快取的大小已經達到第一預設閾值,則將一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中,具體的合併方式可以參考步驟102,在此不再贅述。
步驟105:判斷當前二級快取檔案的大小是否到達第二預設閾值,如果是,則進入步驟106,如果否,則進入步驟107。
在本發明實施例中,也同樣為二級快取檔案設置一個閾值大小(第二預設閾值),以實現在寫入一級快取中的所有一級倒排索引記錄的當前二級緩衝檔案達到設置的閥值時,可以將二級快取檔案中的所有二級倒排索引記錄寫入至三級倒排索引檔案。
而可以理解的是,當二級快取檔案的大小沒有到達第一預設閾值,則該二級快取檔案中對於當前郵件的倒排索引記錄的寫入操作成功,即是已經將當前郵件的倒排索引記錄儲存至二級快取檔案中,後續用戶進行搜尋時如果該當前郵件符合搜尋要求,就可以從二級快取檔案中搜尋到
該當前郵件,則結束當前郵件的索引建立流程。
需要說明的是,在本發明實施例中,二級緩衝檔案可以避免因為記憶體中的一級快取被寫滿後,將其中的倒排索引記錄直接寫入各個關鍵字所屬的三級倒排索引檔案時需要同時寫入多個三級倒排索引檔案的現象。例如,記憶體的一級快取中有10條倒排索引記錄,該10個倒排索引記錄中的10個關鍵字分別屬於5個三級倒排索引檔案,此時如果直接將一級快取中的倒排索引記錄直接寫入三級倒排索引檔案,則必須同時對5個三級倒排索引檔案執行寫入操作。而在本發明實施例中,二級快取檔案存在的情況下,只需要將該10條倒排索引記錄寫入一個二級快取檔案即可。而當該二級快取檔案增加到一定閥值(例如4M)的時候,再對二級快取檔案中的二級倒排索引進行一次性的歸類,即是寫入10個關鍵字各自所屬的三級倒排索引檔案,這樣就可以大大減少對於硬碟上的檔案的寫入次數。
步驟106:依據路徑檔案將所述二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
在本發明實施例中,為了記錄關鍵字與三級倒排索引檔案的映射關係,即是哪個關鍵字在哪個三級倒排索引檔案中儲存,則可以產生一個路徑檔案來記錄關鍵字到三級倒排索引檔案的映射關係。其中,路徑檔案中的記錄示例如下:
keyword1~keyword3:/xx/存放的檔案名1 keyword2~.keywordx:/xx/存放的檔案名2 ....... keywordn~keywordm:/xx/存放的檔案名
當設置路徑檔案之後,後續在郵箱檢索的時候,就可以先從路徑檔案中記錄的映射關係定位關鍵字所在的三級倒排索引檔案,然後再讀取該三級倒排索引檔案就可以知道包括關鍵字的郵件有哪些。因此,本發明實施例中的;路徑檔案實際上定義了關鍵字到三級倒排索引檔案的路徑。
在實際應用中,步驟106具體可以包括:步驟201:將所述二級快取檔案中的所有二級倒排索引記錄讀取至記憶體中;首先,可以先將該二級快取檔案的所有二級倒排索引記錄讀取到記憶體中;步驟202:依據路徑檔案確定所述二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;然後根據路徑檔案描述的關鍵字到三級倒排索引檔案的路徑,確定二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;步驟203:將所述二級倒排索引記錄按照關鍵字寫入確定的三級倒排索引檔案。
最後將這些二級倒排索引記錄寫入已經確定的各自所屬的三級倒排索引檔案裏。在往三級倒排索引檔案中寫入
二級倒排索引記錄時,可以將所述二級快取檔案中的所有倒排索引記錄按照關鍵字以追加方式讀取至確定的三級倒排索引檔案,採用追加方式對三級倒排索引檔案進行寫入操作,可以提高寫入速度。
當達到閾值後,系統會讀取第2點提到的根節點檔案。此時系統掃描緩衝檔案的倒排記錄,讀取每行記錄的關鍵字比如keyword1,然後根據根節點檔案的資訊得到keyword1這行記錄應該在哪個倒排檔案,於是將該行記錄追加到該檔案裏。
步驟107:結束當前郵件的索引建立流程。
本發明實施例中,因為採用一級快取、二級快取檔案和三級倒排索引檔案的方式,對郵件建立的倒排索引記錄可以先儲存至一級快取中,在一級快取達到第一預設閾值時,再將一級快取中的一級倒排索引記錄一次性全部轉移至二級快取檔案中,並在二級快取檔案達到第二預設閾值時,再將其中的二級倒排索引記錄一次性全部轉移至三級倒排索引檔案中,這樣就能避免因為郵件的倒排索引記錄過多而導致的對硬碟的寫入次數過多的現象,從而使得建立郵件索引的過程中增加倒排索引記錄的寫入速度,從而不僅提升了郵件索引的建立速度,也能減少對磁片的寫入次數過多而造成的衝擊,就提升了磁片的IO性能。
進一步的,本發明實施例中的郵件索引有一部分是存在一級快取即是記憶體中的,因此硬碟上就不會儲存全部的郵件索引,因此,頻繁的插入新郵件時,由於緩衝在記
憶體裡就不會對磁碟的寫入造成過大的衝擊,並且可以透過提高最新資料的速度來達到搜尋即時性的目的。
參見圖3,示出了本發明的一種郵件索引建立方法實施例2的流程圖,在本實施例中,執行完前述實施例1的所有步驟之後,本實施例還可以包括以下步驟:
步驟301:判斷三級倒排索引檔案的大小是否到達第三預設閾值,如果是,則進入步驟302。
在本實施例中,進一步的包括對三級倒排索引檔案的大小進行閾值判斷的過程,其中,三級倒排索引檔案的閾值雖然設置為第三預設閾值,但是其可以和二級快取檔案的第二預設閾值相同。
可以理解的是,在本實施例中,對於一級快取、二級快取檔案和三級倒排索引檔案的閾值大小的設置,可以從一定時間內對磁片的讀寫次數,以及在用戶搜尋郵箱時需要在多少時間內返回用戶搜尋結果等方面考慮設置,當然,檔案越小,就會使得讀寫速度更快,但是也會導致檔案過多以及讀寫速度較慢的現象,因此,可以依據實際情況適應性調整閾值的大小。
在本步驟中,如果三級倒排索引檔案的大小沒有達到第三預設閾值,例如4M,則不會執行後續步驟。
步驟302:將所述三級倒排索引檔案分裂為兩個倒排索引子檔案。
而如果三級倒排索引檔案太大則可以根據關鍵字對三級倒排索引檔案進行分裂。分裂的方式是按照關鍵字的粒
度進行分裂,即是一個關鍵字對應的倒排索引記錄只會在一個倒排索引子檔案裏。這樣後續查詢一個關鍵字所涉及的郵件時只會讀取一個三級倒排索引檔案,而且這個三級倒排索引檔案也不會超過4M,就能保證對於郵件索引的讀取速度。如下:keyword1:doc1,doc2,doc3........ keyword2:doc1,doc3,doc4.... keyword3:doc1,doc6...... ........ keywordn:doc1,dock.......
當此檔案太大的時候則會在虛線位置分裂成兩個倒排索引子檔案。
可以理解的是,在本發明實施例中,在將三級倒排索引檔案分裂為兩個倒排索引子檔案時,需要參考兩個因素,一是關鍵字粒度,即是保證一個關鍵字對應的倒排索引記錄一定存在一個倒排索引子檔案中,而是需要考慮兩個倒排索引子檔案的大小應該儘量接近,這樣才能儘量減少後續對於倒排索引子檔案進行分裂的次數。
步驟303:依據分裂後的兩個倒排索引子檔案更新路徑檔案。
因為超過第三預設閾值的三級倒排索引檔案分裂為兩個倒排索引子檔案,那麽,原三級倒排索引檔案中的各個關鍵字所對應的倒排索引記錄也發生了變化,因此需要按照分裂後的倒排索引子檔案更新路徑檔案。對路徑檔案更
新完畢後可以刪除掉原三級倒排索引檔案。
本實施例與實施例1不同之處在於,對三級倒排索引檔案也設置了第三預設閾值,當三級倒排索引檔案的大小達到第三預設閾值的時候,就將其分裂為兩個倒排索引子檔案,並且該倒排索引子檔案也要保證不大於第三預設閾值,透過這種方式,就可以保證每一個三級倒排索引檔案的大小不會過大,進而能夠保證對於郵件索引的讀取速度。
參見圖4,示出了本發明的一種郵件索引建立方法實施例3的流程圖,本實施例可以包括以下步驟:
步驟401:對待建立索引的當前郵件進行分詞得到所述當前郵件的關鍵字。
步驟402:依據所述當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄。
步驟403:判斷儲存所述一級快取的大小是否到達第一預設閾值,如果是,則進入步驟404。
步驟404:將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中。
步驟405:判斷當前二級快取檔案的大小是否到達第二預設閾值,如果是,則進入步驟406。
步驟406:將所述二級快取檔案中的所有二級倒排索引記錄讀取至記憶體中。
步驟407:依據路徑檔案確定所述二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案。
步驟401~步驟407可以參考實施例1中的介紹,在此不再贅述。
步驟408:將所述二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案中的增量檔案。
本實施例與實施例1和實施例2的不同之處在於,所述三級倒排索引檔案設置為兩個部分,即是初始靜態壓縮檔案和增量檔案,其中,初始靜態壓縮檔案儲存的是壓縮後的倒排索引記錄,而增量檔案儲存的沒有進行壓縮的倒排索引記錄。其中,當有新郵件的倒排索引記錄產生的時候,可以將該新生的倒排索引記錄寫入該增量檔案。
步驟409:判斷所述增量檔案是否超過增量閾值,如果是,則進入步驟410。
在本實施例中,對增量檔案的閾值也可以進行設置,例如增量檔案也不大於4M,當增量檔案達到預設的增量閥值時,就可以再將增量檔案儲存的內容進行壓縮,以減小三級倒排索引檔案的大小及其所佔用的硬碟儲存空間。
步驟410:解壓縮所述初始靜態壓縮檔案以得到解壓縮後的初始靜態檔案。
如果增量檔案的大小超過增量閾值,則先讀取初始靜態壓縮檔案的內容進行解壓縮,以得到沒有壓縮的初始靜態檔案。
步驟411:合併所述初始靜態檔案和所述增量檔案得到合併檔案。
在將初始靜態檔案和增量檔案進行合併得到合併檔
案。
步驟412:將合併檔案進行壓縮以產生當前靜態壓縮檔案。
最後將合併檔案再進行壓縮,產生當前的靜態壓縮檔案,同時清空增量檔案中原來儲存的內容。這樣做的目的是在用壓縮技術降低三級倒排索引檔案儲存成本的同時,節約頻繁寫入資料時解壓縮和壓縮的計算開銷和磁片寫入開銷。
本實施例與實施例2的不同之處在於,將三級倒排索引檔案分為壓縮的初始靜態檔案,以及增量檔案,則可以在實現提升郵件索引的建立速度,也減少對磁片的寫入次數過多而造成的衝擊,提升磁片的IO性能的同時,也能夠進一步的節省三級倒排索引檔案的儲存資源。
參見圖5,示出了本發明的一種郵件搜尋方法實施例的流程圖,本實施例需要先採用前述郵件索引建立方法的實施例1、實施例2和實施例3來建立用戶的郵件索引,則在郵件索引建立之後,本實施例可以包括以下步驟:
步驟501:獲取用戶提交的待搜尋的關鍵字。
在用戶搜尋郵件時,先接收用戶提交的待搜尋的關鍵字。
步驟502:依據路徑檔案確定所述關鍵字對應的三級倒排索引檔案,所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
具體在實現時,可以根據路徑檔案確定關鍵字對應的
三級倒排索引檔案,即是包括待搜尋的關鍵字的三級倒排索引檔案,再將該三級倒排索引檔案載入到記憶體中的二元樹資料結構中。
步驟503:從所述三級倒排索引檔案中獲取所述關鍵字所在的第一郵件集合。
再從記憶體中的二元樹資料解雇中檢索出該待搜尋的關鍵字所在的郵件,將這些郵件作為第一郵件集合。
步驟504:從一級快取中獲取所述關鍵字所在的第二郵件集合。
因為在本發明實施例中,一級快取中也可能存在一部分包括該關鍵字的郵件,這部分郵件在一級快取未達到第一預設閾值的情況下,還未被讀取至二級快取檔案中,因此需要再從一級快取中檢索到這些郵件作為第二郵件集合。
步驟505:從所述二級快取檔案中獲取所述關鍵字所在的第三郵件集合。
同時在本發明實施例中,二級快取檔案中也可能存在一部分包括該關鍵字的郵件,這部分郵件在二級快取檔案未達到第二預設閾值的情況下,還未被讀取至三級倒排索引檔案中,因此需要再從二級快取檔案中檢索到這些郵件作為第三郵件集合。
步驟506:合併所述第一郵件集合、第二郵件集合和第三郵件集合以獲得搜尋結果。
最後將分別檢索到的第一郵件集合、第二郵件集合和
第三郵件集合合併之後的總和,作為用戶當前關鍵字的搜尋結果。需要說明的是,其中步驟503~步驟505的步驟在實施時並不區分先後順序,先檢索到哪一個郵件集合都可以最終實現本發明。
在本實施例中,在檢索郵件時,根據用戶的待搜尋關鍵字分別從一級快取、二級快取檔案和三級倒排索引檔案中檢索郵件,並且一級快取、二級快取檔案和三級倒排索引檔案的大小都不會超過各自的預設閾值,這樣就可以透過對三者的分別檢索來減少對硬碟的讀寫次數,提升郵件檢索的速度,也提升硬碟的IO性能。
透過以上的方法實施例的描述,所屬領域的技術人員可以清楚地瞭解到本發明可借助軟體加必需的通用硬體平臺的方式來實現,當然也可以透過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存介質中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存介質包括:唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟或者光碟等各種可以儲存程式碼的介質。
相應於上面的方法實施例,本發明實施例還提供一種郵件索引建立系統。參見圖6,示出了一種郵件索引建立系統實施例1的結構示意圖,可以包括:
分詞單元601,用於對待建立索引的當前郵件進行分詞得到所述當前郵件的關鍵字。
更新一級快取單元602,用於依據所述當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄。
第一判斷單元603,用於判斷儲存所述一級快取中一級倒排索引記錄的大小是否到達第一預設閾值。
第一讀取單元604,用於在所述第一判斷單元的結果為是的情況下,將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中。
第二判斷單元605,用於判斷當前二級快取檔案的大小是否到達第二預設閾值。
第二讀取單元606,用於在所述第二判斷單元的結果為是的情況下,依據路徑檔案將所述二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
參考圖7所示,在實際應用中所述第二讀取單元606具體可以包括:第一讀取模組701,用於將所述二級快取檔案中的所有二級倒排索引記錄讀取至記憶體中;確定模組702,用於依據路徑檔案確定所述二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;第二讀取模組703,用於將所述二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案。
所述第二讀取模組703具體可以用於:將所述二級快
取檔案中的所有倒排索引記錄按照關鍵字以追加方式讀取至確定的三級倒排索引檔案。
本發明實施例中,因為採用一級快取、二級快取檔案和三級倒排索引檔案的方式,對郵件建立的倒排索引記錄可以先儲存至一級快取中,在一級快取達到第一預設閾值時,再將一級快取中的一級倒排索引記錄一次性全部轉移至二級快取檔案中,並在二級快取檔案達到第二預設閾值時,再將其中的二級倒排索引記錄一次性全部轉移至三級倒排索引檔案中,這樣就能避免因為郵件的倒排索引記錄過多而導致的對硬碟的寫入次數過多的現象,從而使得建立郵件索引的過程中增加倒排索引記錄的寫入速度,從而不僅提升了郵件索引的建立速度,也能減少對磁片的寫入次數過多而造成的衝擊,就提升了磁片的IO性能。
進一步的,本發明實施例中的郵件索引有一部分是存在一級快取即是記憶體中的,因此硬碟上就不會儲存全部的郵件索引,因此,頻繁的插入新郵件時,由於緩衝在記憶體裡就不會對磁碟的寫入造成過大的衝擊,並且可以透過提高最新資料的速度來達到搜尋即時性的目的。
參見圖8,示出了一種郵件索引建立系統實施例2的結構示意圖,除了圖7所示的郵件索引建立系統實施例1中的功能單元之外,所述郵件索引建立系統還可以包括:第三判斷單元801,用於判斷三級倒排索引檔案的大小是否到達第三預設閾值。
分離單元802,用於在所述第三判斷單元的結果為是
的情況下,將所述三級倒排索引檔案分裂為兩個倒排索引子檔案。
更新路徑單元803,用於依據分裂後的兩個倒排索引子檔案更新路徑檔案。
本實施例對三級倒排索引檔案也設置了第三預設閾值,當三級倒排索引檔案的大小達到第三預設閾值的時候,就將其分裂為兩個倒排索引子檔案,並且該倒排索引子檔案也要保證不大於第三預設閾值,透過這種方式,就可以保證每一個三級倒排索引檔案的大小不會過大,進而能夠保證對於郵件索引的讀取速度。
參見圖9,示出了本發明的一種郵件索引建立系統實施例3的結構示意圖,可以包括:分詞單元601,用於對待建立索引的當前郵件進行分詞得到所述當前郵件的關鍵字。
更新一級快取單元602,用於依據所述當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄。
第一判斷單元603,用於判斷儲存所述一級快取中一級倒排索引記錄的大小是否到達第一預設閾值。
第一讀取單元604,用於在所述第一判斷單元的結果為是的情況下,將所述一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中。
第二判斷單元605,用於判斷所述二級快取檔案的大小是否到達第二預設閾值。
第一讀取模組701,用於將所述二級快取檔案中的所
有二級倒排索引記錄讀取至記憶體中。
確定模組702,用於依據路徑檔案確定所述二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案。
在本實施例中,所述三級倒排索引檔案具體可以包括初始靜態壓縮檔案和增量檔案。
第二讀取模組703具體可以用於:將所述二級倒排索引記錄按照關鍵字讀取至所述增量檔案。
第四判斷單元901,用於判斷所述增量檔案是否超過增量閾值。
解壓縮單元902,用於在所述第四判斷單元的結果為是的情況下,解壓縮所述初始靜態壓縮檔案以得到解壓縮後的初始靜態檔案。
合併單元903,用於合併所述初始靜態檔案和所述增加檔案得到合併檔案。
壓縮單元904,用於將合併檔案進行壓縮以產生當前靜態壓縮檔案。
在本實施例中,將三級倒排索引檔案分為壓縮的初始靜態檔案,以及增量檔案,則可以在實現提升郵件索引的建立速度,也減少對磁片的寫入次數過多而造成的衝擊,提升磁片的IO性能的同時,也能夠進一步的節省三級倒排索引檔案的儲存資源。
本發明還提供一種郵件搜尋系統,參考圖10所示,為郵件搜尋系統實施例的結構示意圖,該郵件搜尋系統除了包括前述的郵件索引建立系統實施例1、實施例2或實
施例3之外,還可以包括:關鍵字獲取單元1001,用於獲取用戶提交的待搜尋的關鍵字;確定單元1002,用於依據路徑檔案確定所述關鍵字對應的三級倒排索引檔案;所述路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係;第一郵件集合獲取單元1003,用於從所述三級倒排索引檔案中獲取所述關鍵字所在的第一郵件集合;第二郵件集合獲取單元1004,用於從一級快取中獲取所述關鍵字所在的第二郵件集合;第三郵件集合獲取單元1005,用於從所述二級快取檔案中獲取所述關鍵字所在的第三郵件集合;搜尋結果獲取單元1006,用於合併所述第一郵件集合、第二郵件集合和第三郵件集合以獲得搜尋結果。
在本實施例中,在檢索郵件時,根據用戶的待搜尋關鍵字分別從一級快取、二級快取檔案和三級倒排索引檔案中檢索郵件,並且一級快取、二級快取檔案和三級倒排索引檔案的大小都不會超過各自的預設閾值,這樣就可以透過對三者的分別檢索來減少對硬碟的讀寫次數,提升郵件檢索的速度,也提升硬碟的IO性能。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。術語“包括”、“包
含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
對於系統實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性工作的情況下,即可以理解並實施。
以上所述僅是本發明的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖
式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性工作的前提下,還可以根據這些圖式獲得其他的圖式。
圖1為本發明郵件所引建立方法實施例1的流程圖;圖2本發明方法實施例1中步驟103的流程圖;圖3為本發明郵件所引建立方法實施例2的流程圖;圖4為本發明郵件索引建立方法實施例3的流程圖;圖5為本發明郵件搜尋方法實施例的流程圖;圖6為本發明郵件索引建立系統實施例1的結構示意圖;圖7為本發明郵件索引建立系統實施例1中第二獲取單元606的結構示意圖;圖8為本發明郵件索引建立系統實施例2的結構示意圖;圖9為本發明郵件索引建立系統實施例3的結構示意圖;圖10為本發明郵件搜尋系統實施例的結構示意圖。
Claims (12)
- 一種郵件索引建立方法,其特徵在於,包括:對待建立索引的當前郵件進行分詞得到該當前郵件的關鍵字;依據該當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄;判斷該一級快取中的一級倒排索引記錄的大小是否到達第一預設閾值,如果是,則將該一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中;判斷當前二級快取檔案的大小是否到達第二預設閾值,如果是,則依據路徑檔案將該二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,該路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
- 根據申請專利範圍第1項所述的方法,其中,該將該二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案之後,還包括:判斷該三級倒排索引檔案的大小是否到達第三預設閾值,如果是,則將該三級倒排索引檔案分裂為兩個倒排索引子檔案;依據分裂後的兩個倒排索引子檔案更新路徑檔案。
- 根據申請專利範圍第1項所述的方法,其中,該將該二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,包括:將該二級快取檔案中的所有二級倒排索引記錄讀取至 記憶體中;依據路徑檔案確定該二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;將該二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案。
- 根據申請專利範圍第3項所述的方法,其中,該將該二級快取檔案中的所有倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案,具體為:將該二級快取檔案中的所有倒排索引記錄按照關鍵字以追加方式讀取至確定的三級倒排索引檔案。
- 根據申請專利範圍第3項所述的方法,其中,該三級倒排索引檔案包括初始靜態壓縮檔案和增量檔案;則該將該二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案,具體為:將該二級倒排索引記錄按照關鍵字讀取至該增量檔案;則該將該二級快取檔案中的所有倒排索引記錄讀取至三級倒排索引檔案之後,還包括:判斷該增量檔案是否超過增量閾值,如果是,則解壓縮該初始靜態壓縮檔案以得到解壓縮後的初始靜態檔案;合併該初始靜態檔案和該增加檔案得到合併檔案,並將合併檔案進行壓縮以產生當前靜態壓縮檔案。
- 一種郵件搜尋方法,其特徵在於,採用如申請專利範圍第1項所述的方法建立郵箱索引;該搜尋方法包 括:獲取用戶提交的待搜尋的關鍵字;依據路徑檔案確定該關鍵字對應的三級倒排索引檔案;該路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係;從該三級倒排索引檔案中獲取該關鍵字所在的第一郵件集合,從一級快取中獲取該關鍵字所在的第二郵件集合,以及,從該二級快取檔案中獲取該關鍵字所在的第三郵件集合;合併該第一郵件集合、第二郵件集合和第三郵件集合以獲得搜尋結果。
- 一種郵件索引建立系統,其特徵在於,包括:分詞單元,用於對待建立索引的當前郵件進行分詞得到該當前郵件的關鍵字;更新一級快取單元,用於依據該當前郵件的關鍵字更新一級快取中儲存的一級倒排索引記錄;第一判斷單元,用於判斷該一級快取中的一級倒排索引記錄的大小是否到達第一預設閾值;第一讀取單元,用於在該第一判斷單元的結果為是的情況下,將該一級快取中的所有一級倒排索引記錄讀取至二級快取檔案中;第二判斷單元,用於判斷當前二級快取檔案的大小是否到達第二預設閾值;第二讀取單元,用於在該第二判斷單元的結果為是的 情況下,依據路徑檔案將該二級快取檔案中的所有二級倒排索引記錄讀取至三級倒排索引檔案,該路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係。
- 根據申請專利範圍第7項所述的系統,其中,還包括:第三判斷單元,用於判斷該三級倒排索引檔案的大小是否到達第三預設閾值;分離單元,用於在該第三判斷單元的結果為是的情況下,將該三級倒排索引檔案分裂為兩個倒排索引子檔案;更新路徑單元,用於依據分裂後的兩個倒排索引子檔案更新路徑檔案。
- 根據申請專利範圍第7項所述的系統,其中,該第二讀取單元包括:第一讀取模組,用於將該二級快取檔案中的所有二級倒排索引記錄讀取至記憶體中;確定模組,用於依據路徑檔案確定該二級倒排索引記錄中的關鍵字對應的三級倒排索引檔案;第二讀取模組,用於將該二級倒排索引記錄按照關鍵字讀取至確定的三級倒排索引檔案。
- 根據申請專利範圍第9項所述的系統,其中,該第二讀取模組具體用於:將該二級快取檔案中的所有倒排索引記錄按照關鍵字以追加方式讀取至確定的三級倒排索引檔案。
- 根據申請專利範圍第9項所述的系統,其中,該 三級倒排索引檔案包括初始靜態壓縮檔案和增量檔案;則該第二讀取模組具體用於:將該二級倒排索引記錄按照關鍵字讀取至該增量檔案;則該裝置還包括:第四判斷單元,用於判斷該增量檔案是否超過增量閾值;解壓縮單元,用於在該第四判斷單元的結果為是的情況下,解壓縮該初始靜態壓縮檔案以得到解壓縮後的初始靜態檔案;合併單元,用於合併該初始靜態檔案和該增加檔案得到合併檔案;壓縮單元,用於將合併檔案進行壓縮以產生當前靜態壓縮檔案。
- 一種郵件搜尋系統,其特徵在於,包括:如申請專利範圍第7項所述的郵件索引建立系統;還包括:關鍵字獲取單元,用於獲取用戶提交的待搜尋的關鍵字;確定單元,用於依據路徑檔案確定該關鍵字對應的三級倒排索引檔案;該路徑檔案儲存關鍵字與三級倒排索引檔案對應的映射關係;第一郵件集合獲取單元,用於從該三級倒排索引檔案中獲取該關鍵字所在的第一郵件集合;第二郵件集合獲取單元,用於從一級快取中獲取該關 鍵字所在的第二郵件集合;第三郵件集合獲取單元,用於從該二級快取檔案中獲取該關鍵字所在的第三郵件集合;搜尋結果獲取單元,用於合併該第一郵件集合、第二郵件集合和第三郵件集合以獲得搜尋結果。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210357269.6A CN103678405B (zh) | 2012-09-21 | 2012-09-21 | 邮件索引建立方法及系统、邮件搜索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201413479A true TW201413479A (zh) | 2014-04-01 |
TWI554897B TWI554897B (zh) | 2016-10-21 |
Family
ID=50315986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101146914A TWI554897B (zh) | 2012-09-21 | 2012-12-12 | Mail index establishment method and system, mail search method and system |
Country Status (6)
Country | Link |
---|---|
US (1) | US9507821B2 (zh) |
EP (1) | EP2898430B1 (zh) |
JP (1) | JP6050503B2 (zh) |
CN (1) | CN103678405B (zh) |
TW (1) | TWI554897B (zh) |
WO (1) | WO2014047193A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9727648B2 (en) * | 2014-12-19 | 2017-08-08 | Quixey, Inc. | Time-box constrained searching in a distributed search system |
US10530724B2 (en) * | 2015-03-09 | 2020-01-07 | Microsoft Technology Licensing, Llc | Large data management in communication applications through multiple mailboxes |
US10530725B2 (en) | 2015-03-09 | 2020-01-07 | Microsoft Technology Licensing, Llc | Architecture for large data management in communication applications through multiple mailboxes |
CN105243150A (zh) * | 2015-10-23 | 2016-01-13 | 中国舰船研究设计中心 | 一种基于字节位置的网络报文数据倒排索引方法 |
CN105511802B (zh) * | 2015-11-24 | 2018-06-05 | 北京达沃时代科技股份有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN106484814A (zh) * | 2016-09-23 | 2017-03-08 | 珠海格力电器股份有限公司 | 数据搜索方法及装置 |
CN106534878A (zh) * | 2016-11-01 | 2017-03-22 | 乐视控股(北京)有限公司 | 一种直播节目的回看方法、系统和服务器 |
US11151249B2 (en) | 2017-01-06 | 2021-10-19 | Crowdstrike, Inc. | Applications of a binary search engine based on an inverted index of byte sequences |
US10430585B2 (en) * | 2017-01-06 | 2019-10-01 | Crowdstrike, Inc. | Binary search of byte sequences using inverted indices |
US11709811B2 (en) | 2017-01-06 | 2023-07-25 | Crowdstrike, Inc. | Applications of machine learning models to a binary search engine based on an inverted index of byte sequences |
CN108628542B (zh) * | 2017-03-22 | 2021-08-03 | 华为技术有限公司 | 一种文件合并方法及控制器 |
CN110471943A (zh) * | 2018-05-09 | 2019-11-19 | 北京京东尚科信息技术有限公司 | 实时数据统计装置和方法以及计算机可读存储介质 |
CN110858191A (zh) * | 2018-08-24 | 2020-03-03 | 北京三星通信技术研究有限公司 | 文件处理方法、装置、电子设备及可读存储介质 |
CN112597114B (zh) * | 2020-12-23 | 2023-09-15 | 跬云(上海)信息科技有限公司 | 一种基于对象存储的olap预计算引擎优化方法及应用 |
CN115344619A (zh) * | 2022-10-17 | 2022-11-15 | 天津联想协同科技有限公司 | 信息搜索方法、终端设备、服务器、电子设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829025A (en) * | 1996-12-17 | 1998-10-27 | Intel Corporation | Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction |
US6516337B1 (en) * | 1999-10-14 | 2003-02-04 | Arcessa, Inc. | Sending to a central indexing site meta data or signatures from objects on a computer network |
JP2002351797A (ja) | 2001-05-23 | 2002-12-06 | Ntt Me Corp | 電子メール検索システム、電子メール検索方法および電子メール検索プログラム |
US20050172076A1 (en) * | 2004-01-30 | 2005-08-04 | Gateway Inc. | System for managing distributed cache resources on a computing grid |
WO2007040503A1 (en) | 2005-09-27 | 2007-04-12 | Teamon Systems, Inc. | Email server with least recently used cache |
US8307036B2 (en) | 2005-09-27 | 2012-11-06 | Research In Motion Limited | Email server with enhanced least recently used (LRU) cache |
CN101150529B (zh) * | 2006-09-21 | 2011-07-27 | 腾讯科技(深圳)有限公司 | 一种搜索邮件的方法及系统 |
JP5187017B2 (ja) * | 2008-06-18 | 2013-04-24 | 富士通株式会社 | 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 |
WO2010041516A1 (ja) * | 2008-10-08 | 2010-04-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、文書検索システム、文書検索方法およびプログラム |
KR101174057B1 (ko) * | 2008-12-19 | 2012-08-16 | 한국전자통신연구원 | 인덱스 분석장치와 인덱스 검색장치 및 그 방법 |
CN101546342B (zh) | 2009-05-08 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 实现搜索服务的方法与系统 |
EP2441005A2 (en) * | 2009-06-09 | 2012-04-18 | Martin Vorbach | System and method for a cache in a multi-core processor |
CN101576927B (zh) * | 2009-06-18 | 2012-08-15 | 浙江大学 | 移动终端基于索引的信息检索方法 |
CN103080910B (zh) * | 2010-09-09 | 2016-06-01 | 日本电气株式会社 | 存储系统 |
US8954688B2 (en) * | 2010-10-06 | 2015-02-10 | International Business Machines Corporation | Handling storage pages in a database system |
US8849775B2 (en) * | 2010-12-15 | 2014-09-30 | Yahoo! Inc. | Caching web documents in two or more caches |
US9400837B2 (en) * | 2010-12-28 | 2016-07-26 | Oracle International Corporation | Real-time text indexing |
-
2012
- 2012-09-21 CN CN201210357269.6A patent/CN103678405B/zh active Active
- 2012-12-12 TW TW101146914A patent/TWI554897B/zh not_active IP Right Cessation
-
2013
- 2013-09-17 US US14/029,445 patent/US9507821B2/en active Active
- 2013-09-18 JP JP2015533157A patent/JP6050503B2/ja active Active
- 2013-09-18 EP EP13773951.2A patent/EP2898430B1/en not_active Not-in-force
- 2013-09-18 WO PCT/US2013/060435 patent/WO2014047193A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP6050503B2 (ja) | 2016-12-21 |
EP2898430B1 (en) | 2016-12-07 |
CN103678405A (zh) | 2014-03-26 |
US9507821B2 (en) | 2016-11-29 |
US20140089258A1 (en) | 2014-03-27 |
TWI554897B (zh) | 2016-10-21 |
EP2898430A2 (en) | 2015-07-29 |
WO2014047193A3 (en) | 2014-09-25 |
WO2014047193A2 (en) | 2014-03-27 |
CN103678405B (zh) | 2016-12-21 |
JP2015537283A (ja) | 2015-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI554897B (zh) | Mail index establishment method and system, mail search method and system | |
EP2885731B1 (en) | Search infrastructure | |
JP5996088B2 (ja) | 暗号ハッシュ・データベース | |
KR102564170B1 (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
CN109445702B (zh) | 一种块级数据去重存储系统 | |
CN102467572B (zh) | 支持重复数据删除程序的数据区块查询方法 | |
KR20160003682A (ko) | 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법 | |
CN113821171B (zh) | 一种基于哈希表与lsm树的键值存储方法 | |
TW201530328A (zh) | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 | |
CN107045531A (zh) | 一种优化hdfs小文件存取的系统及方法 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
CN112148217B (zh) | 全闪存储系统的重删元数据的缓存方法、装置及介质 | |
CN111625531B (zh) | 基于可编程装置的合并装置、数据合并方法及数据库系统 | |
CN111930708B (zh) | 基于Ceph对象存储的对象标签的扩展系统及方法 | |
CN104252537A (zh) | 基于邮件特征的索引分片方法 | |
CN111753518B (zh) | 一种自主的文件一致性检验方法 | |
CN114416676A (zh) | 数据处理方法、装置、设备和存储介质 | |
US20230385240A1 (en) | Optimizations for data deduplication operations | |
CN117493284B (zh) | 文件存储方法、文件读取方法、文件存储和读取系统 | |
CN112084141A (zh) | 一种全文检索系统扩容方法、装置、设备及介质 | |
El-Sayed et al. | SFSAN approach for solving the problem of small files in Hadoop | |
CN111984807B (zh) | 一种内容筛选存储方法及系统 | |
CN103810209B (zh) | 一种保存数据的方法及系统 | |
Vaidya et al. | An improved de-duplication technique for small files in hadoop |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |