我有一个包含大量文件的文件夹,我需要优化搜索速度,因为我有超过1k的不同文件要搜索,实际上我正在使用它:
for path,dirs,files in os.walk('M:/MYFOLDER'):
但是要花很长时间(超过30分钟)搜索所有文件夹(因为它按文件搜索文件),但“Windows搜索”需要20秒才能找到它。
您是否了解优化搜索的一些技巧并使其更快。
感谢您的任何提示。
答案 0 :(得分:2)
你在 Information Retrieval 的土地上,而不是每次都从头开始搜索 - 做搜索引擎所做的事情:
此方法不仅可以让您以后返回相关文档,还可以使用一些已经证实的启发式方法(例如tf-idf model)将它们从最相关和最不相关的位置排列。
有一个名为 Lucene 的开源项目,它也有python binding可以帮助您实现。 Lucene是一个成熟的广泛使用(并且经过广泛测试)的信息检索库(例如在eclipse搜索中使用)
PS 如果您发现自己对信息检索更感兴趣,我建议您阅读Manning的Introduction to Information Retrieval - 它会让您对该领域有很好的理解 - 但它实际上并不是强制性的应用你的任务。
答案 1 :(得分:0)
您可以使用Windows Search SDK + Python ctypes。