我已经在Python中实现了一个后缀树以进行全文搜索,并且它工作得很好。但是有一个问题:索引文本可能非常大,所以我们无法在RAM中拥有整个结构。存储/检索数据结构
IMAGE:这个词BANANAS
后缀树(在我的情况下,设想一个树大10万次)。
因此,研究一下它,我发现pickle
模块是一个很棒的Python模块,用于从文件中“加载”和“倾倒”对象,并猜测是什么?它对我的数据结构非常有用。
因此,长话短说:在磁盘上存储和检索此结构的最佳策略是什么?我的意思是,解决方案可能是将每个节点存储在文件中并在需要时从磁盘加载它,但这不是最好的办法(太多的磁盘访问)。
脚注:虽然我已标记这个问题为python,编程语言不是问题的重要组成部分,在磁盘存储/检索策略,是真正的重点。
一个重要的问题是您是否要创建此结构*一次*并多次使用它,或者是否要创建它并*允许更新*。 –
@GregHewgill:基本上,只需要一个大的文本处理来创建结构,然后就可以使用它。顺便提一下 – juliomalegria
- 使用cPickle - 酸菜快得多。也为什么不使用JSON,而是工作与磁盘工作对付nosql数据库(我不是专家是这个主题告诉你哪一个,但NosSql是已知的解决方案,正是这种场景 - 很好,我相信比多个磁盘文件) – alonisser