我正在搜索包含数千个文件的大型目录树中的数千个字符串。每个字符串可以出现在许多不同的文件中在c#中执行此搜索的最高性能方法是什么?我试着用findstr来启动proccessinfo(但它太痛苦了,因为它会打开每一个文件几千次)。有什么建议么?模仿c#中findstr功能的最佳方式是什么?
2
A
回答
2
我建议使用Lucene.NET创建一个索引文件树的小部件。一旦文档被编入索引,您便可以使用Lucene的所有功能以非常强大的方式搜索内容......而无需打开每个文件1000次! :P
不知道程序的寿命......这可能不是一次性使用场景的好主意。对于多用途场景,您需要确保您有一个随着时间的推移而更新索引的Windows服务(如果这很重要)。
一旦索引创建,这将是非常高效的!
0
您是否需要执行一次性搜索或连续按需?我会建议绑定到索引服务或实现您自己的Lucene索引。有许多Lucene索引的开源实现,基本上你只扫描一次文件并构建内容的综合索引,然后再根据预制索引进行搜索。索引生成需要一段时间,但搜索速度非常快。这适用于'网页'类型的内容和简单的短语和单词。
如果您正在尝试查找非单词/任意随机字符串,则您有不同的任务。
-Jeff
相关问题
- 1. 建议Delphi的新功能的最佳方式是什么?
- 2. 创建Gmail功能的最佳方式是什么?
- 3. 什么是分离JavaScript功能的最佳方式?
- 4. 什么是分离MVC控制器功能的最佳方式?
- 5. 实现忘记密码功能的最佳方式是什么?
- 6. 什么是扩展angularjs指令功能的最佳方式?
- 7. 向swig生成的ruby模块添加功能的最佳方式是什么?
- 8. 什么是限制商店或网站模块功能的最佳方式
- 9. 在VB6中定时功能/测量性能的最佳方式是什么?
- 10. 在WordPress中格式化C#的最佳方式是什么?
- 11. 将需求映射到Redmine中的功能的最佳方式是什么?
- 12. 在Delphi中实现C#的BackgroundWorker的最佳方式是什么?
- 13. 在C#中模拟雷达的最佳方法是什么?
- 14. 什么是查询的最佳方式?
- 15. 键入()的最佳方式是什么?
- 16. 什么是开源的最佳方式?
- 17. “投票”的最佳方式是什么?
- 18. 在Adobe AIR for mobile中重现QLPreviewController功能的最佳方式是什么?
- 19. 在Perl中实现sscanf-like功能的最佳方式是什么?
- 20. 在Rails中实现“查找商店”功能的最佳方式是什么?
- 21. 这是恢复模拟功能的最佳方式
- 22. 什么是在rails中排名模型的最佳方式
- 23. 在模型中包含特质的最佳方式是什么?
- 24. 在Django模型中表示URL的最佳方式是什么?
- 25. 在Javascript中使用Jinja2模板的最佳方式是什么?
- 26. 从视图中添加模型的最佳方式是什么?
- 27. 在模型中更改数据的最佳方式是什么?
- 28. R中基准(性能分析)的最佳方式是什么?
- 29. 在C#中做事情的最佳方式是什么?
- 30. 在c#中连接数据库的最佳方式是什么?
哪个操作系统?也许使用索引服务或Windows搜索? – 2009-07-07 22:06:26