实现文本文件内容的索引

时间:2011-01-03 20:29:42

标签: algorithm data-structures

我有一个包含大量单词(~50MB)的文本文件。要为此文件内容构建索引,哪种数据结构最适合?

或者使用什么数据结构,我可以在搜索时获得最佳效果?

提前致谢

Jijoy

4 个答案:

答案 0 :(得分:4)

如果您的数据是单词词典,则Trie非常适合。

答案 1 :(得分:2)

您可以使用像[lucene] [1]

这样的库来切断使用数据结构和编写算法的开销

[1]:http://lucene.apache.org/。我不太确定你的情况是否正确但是在java中必须为文件创建索引并且必须使用这些索引执行一些搜索操作时,lucene的使用被认为是公平的。

答案 2 :(得分:0)

如果你把它想象成一张桌子,那么B + Tree会非常有效率,但是如果它只是一个很大的单词列表,你可以试试Fibonacci树。

答案 3 :(得分:0)

如果您正在寻找全文索引,那么后缀数组是一个很好的选择:

http://en.wikipedia.org/wiki/Suffix_array

如果你只想要一个内存中的倒排索引,那么哈希表可能是最好的。