搜索数百万个文件名的最佳数据结构?

时间:2011-07-28 03:36:32

标签: c# .net algorithm search data-structures

  

可能重复:
  Build an index for substring search?

我正在开发一个文件名搜索工具。我想搜索一个硬盘(或多个硬盘),可能是数百万个文件名。

鉴于文件: application 3 - jack smithinson

搜索:

  1. 'application','3','jack','smithinson'
  2. 'smith'
  3. 'inson'
  4. 应该都返回此文件。

    此类操作的最佳数据结构是什么?为什么?

    1. 二叉树。
    2. Trie树。
    3. 文件名的SQLite数据库
    4. 更多?

1 个答案:

答案 0 :(得分:8)

将这些文件名存储在Lucene索引中。您可以在这里找到更多信息 http://incubator.apache.org/lucene.net/ Lucene允许您为搜索创建高度优化的索引。雅虎多年来一直在使用它的网络搜索引擎。 它提供了一种创建索引的抽象方法,而无需担心内部实现。它就像在内存中创建xml文档然后将其序列化到磁盘

一样简单
相关问题