2011-07-28 87 views
4

可能重複:
Build an index for substring search?搜索數百萬文件名的最佳數據結構?

我正在開發一個文件名的搜索工具。我想搜索一個硬盤(或多個硬盤),可能是數百萬個文件名。

給定的文件:application 3 - jack smithinson

搜索:

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

應該都返回這個文件。

什麼是這種操作的最佳數據結構,爲什麼?

  1. 二叉樹。
  2. Trie。
  3. SQLite數據庫,文件名稱
  4. 更多?
+0

這兩種方法都沒有答案 – Jason

+0

您將如何維護數據結構?該結構在實際文件系統內容方面需要多少電流? –

回答

8

將這些文件名存儲在Lucene索引中。您可以在這裏找到更多信息 http://incubator.apache.org/lucene.net/ Lucene允許您爲搜索創建高度優化的索引。雅虎多年來一直將其用於網絡搜索引擎。 它提供了一種創建索引的抽象方式,而不用擔心內部實現。這就像在內存中創建一個xml文檔一樣簡單,然後將其序列化到磁盤

相關問題