c# - 搜索数百万文件名的最佳数据结构?

标签 c# .net algorithm search data-structures

<分区>

Possible Duplicate:
Build an index for substring search?

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

给定文件:application 3 - jack smithinson

搜索:

  1. '应用程序', '3', 'jack', 'smithinson'
  2. 'smith'
  3. 'inson'

应该都返回这个文件。

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

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

最佳答案

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

关于c# - 搜索数百万文件名的最佳数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853824/

相关文章:

c# - 3 个网站 1 个项目

c# - Visual Studio 2017 的托管包框架

c# - 如何确定何时显示工具提示?

algorithm - 使用哪种数据结构

"median of medians"算法的Python实现

algorithm - 使用动态规划用定义数量的监督者监督最大值(value)的项目

c# - 如何在 .net core 2 启动时访问 IConfigurationRoot?

c# - 无法访问该文件,因为它正被另一个进程使用

c# - 类型约束 C# 泛型的无效转换

.net - 将 Npgsql 用于 EntityFramework 的 Postgis 地理类型