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

Jas*_*son 4 .net c# algorithm search data-structures

可能重复:
为子字符串搜索构建索引?

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

给定文件: application 3 - jack smithinson

搜索:

  1. ' application',' 3',' jack',' smithinson'
  2. ' smith'
  3. ' inson'

应该都返回此文件.

这种操作的最佳数据结构是什么?为什么?

  1. 二叉树.
  2. 特里.
  3. SQLite数据库,文件名
  4. 更多?

Sap*_*Sap 8

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