需要针对大文件夹中的更快搜索进行优化

时间:2013-02-21 15:14:06

标签: python search optimization

我有一个包含大量文件的文件夹,我需要优化搜索速度,因为我有超过1k的不同文件要搜索,实际上我正在使用它:

for path,dirs,files in os.walk('M:/MYFOLDER'):

但是要花很长时间(超过30分钟)搜索所有文件夹(因为它按文件搜索文件),但“Windows搜索”需要20秒才能找到它。

您是否了解优化搜索的一些技巧并使其更快。

感谢您的任何提示。

2 个答案:

答案 0 :(得分:2)

你在 Information Retrieval 的土地上,而不是每次都从头开始搜索 - 做搜索引擎所做的事情:

  • Index您的数据(预处理,仅执行一次,或偶尔执行一次 - 这假设文档集合相对稳定 - 与搜索次数相比变化很小)
  • 每次查询到来时 - 在索引中搜索以快速找到答案。

此方法不仅可以让您以后返回相关文档,还可以使用一些已经证实的启发式方法(例如tf-idf model)将它们从最相关和最不相关的位置排列。

有一个名为 Lucene 的开源项目,它也有python binding可以帮助您实现。 Lucene是一个成熟的广泛使用(并且经过广泛测试)的信息检索库(例如在eclipse搜索中使用)


PS 如果您发现自己对信息检索更感兴趣,我建议您阅读Manning的Introduction to Information Retrieval - 它会让您对该领域有很好的理解 - 但它实际上并不是强制性的应用你的任务。

答案 1 :(得分:0)

您可以使用Windows Search SDK + Python ctypes