我試圖讓一個應用程序,在C#.NET 4.0和WPF,即指標:Lucene.NET結構文件路徑索引解決方案
- 文件名( 「的TaskMgr.exe」)
- 文件說明( 「Windows任務管理器」)
- 絕對父目錄( 「C:\ Windows \ System32下」)
在用戶的計算機上的所有硬盤。
我沒有索引文件的內容 - 只是文件名/路徑/描述。另外請注意,我只索引擴展名爲.DOC,.MP3,.EXE,.CS,.CPP的實用文件。我不會將無擴展文件,自定義擴展,DLL或其他類型的索引編入索引。
我對Lucene完全陌生,我已經閱讀了一些關於如何設計文檔/索引結構的初學者文章。
我在想我的Lucene文檔結構可能是這樣的,每個文件都是一個新文檔,其中包含上面列出的三個字段作爲三個關鍵對值。這是建議嗎? Lucene是正確的選擇嗎?搜索文件名是否是實時的(列表可以沒有太多滯後,動態擴展並與所有可能的文件名和路徑進行契約)?
如果需要統計信息,我的硬盤是450 GB,並且我有681,014個(所有擴展名)文件和165,732個文件夾。
無法擁有網絡應用 - 需要成爲桌面應用。據我瞭解,這消除了Solr。 – Jason 2012-03-02 20:43:46
你能否詳細說明一下「如果它應該匹配其中的任何文件名稱,描述或父目錄,它應該都是一個字段?」我沒有使用Lucene的經驗,但我認爲如果我輸入了文件描述的一部分,Lucene可能會返回Document對象,從中我可以訪問文件描述和文件路徑。實際上,如果搜索與描述,名稱或目錄匹配,則需要返回文件。這必須是一個領域......? – Jason 2012-03-02 20:45:58
您可以從許多方面訪問Solr,包括[C#](http://code.google.com/p/solrnet/)。 Lucene查詢是每個字段的,所以你可以讓你的搜索爲'filename:foo description:foo parent:foo',但如果你只有一個字段'everything',那麼你的查詢就是'everything:foo',它可能會更容易。無論哪種情況,您都將收回整個文檔(只要字段已存儲)。 – Xodarap 2012-03-03 13:50:38