我试图在C#.NET 4.0和WPF中创建一个应用程序索引:
在用户计算机的所有硬盘上。
我没有索引文件的内容 - 只是文件名/路径/描述。另请注意,我只对索引扩展名为.DOC,.MP3,.EXE,。CS,.CPP的实际文件编制索引。我不会将无扩展名文件,自定义扩展,DLL或其他类型的索引编入索引。
我对Lucene来说是全新的,我已经阅读了几篇关于如何设计文档/索引结构的初学者文章。
我认为我的Lucene文档结构可能是这样的,每个文件都是一个新文档,上面列出了三个字段作为三个键对值。这是推荐的吗?和Lucene一起选择正确的选择吗?搜索文件名是否是实时的(列表可以,没有太多延迟,动态扩展和收缩所有可能的文件名和路径)?
如果需要任何统计信息,我的硬盘驱动器为450 GB,我有681,014个(所有扩展名)文件和165,732个文件夹。
答案 0 :(得分:1)
Lucene也是如此;问题是:您的用户想要什么?如果他们搜索“任务”,它是否应匹配名称,描述或父目录中包含它的任何文件?如果是这样,那么这应该是所有一个领域。
您的用户是否希望更具体(例如filename:task
)?如果是这样,那么您将需要单独的字段。
暂且不说:你可能想要使用Solr。它更容易设置,并防止一些常见的陷阱。
答案 1 :(得分:1)
这是一个带有dotLucene(现为Lucene.net)的rather old article,但对于编写Lucene桌面搜索应用程序的新手非常有用。
注意:Lucene.net 3.0 API发生了重大变化,因此仅将其用作指南。