我已經在Python中實現了一個後綴樹以進行全文搜索,並且它工作得很好。但是有一個問題:索引文本可能非常大,所以我們無法在RAM中擁有整個結構。存儲/檢索數據結構
IMAGE:這個詞BANANAS
後綴樹(在我的情況下,設想一個樹大10萬次)。
因此,研究一下它,我發現pickle
模塊是一個很棒的Python模塊,用於從文件中「加載」和「傾倒」對象,並猜測是什麼?它對我的數據結構非常有用。
因此,長話短說:在磁盤上存儲和檢索此結構的最佳策略是什麼?我的意思是,解決方案可能是將每個節點存儲在文件中並在需要時從磁盤加載它,但這不是最好的辦法(太多的磁盤訪問)。
腳註:雖然我已標記這個問題爲python,編程語言不是問題的重要組成部分,在磁盤存儲/檢索策略,是真正的重點。
一個重要的問題是您是否要創建此結構*一次*並多次使用它,或者是否要創建它並*允許更新*。 –
@GregHewgill:基本上,只需要一個大的文本處理來創建結構,然後就可以使用它。順便提一下 – juliomalegria
- 使用cPickle - 酸菜快得多。也爲什麼不使用JSON,而是工作與磁盤工作對付nosql數據庫(我不是專家是這個主題告訴你哪一個,但NosSql是已知的解決方案,正是這種場景 - 很好,我相信比多個磁盤文件) – alonisser