我有一个简单的要求,用户输入一堆单词,系统扫描超过 300 万个文本文件并找到包含这些关键字的文件。在没有复杂的搜索/索引算法的情况下实现这一点的最有效和最简单的方法是什么?
我想用Scanner
类,但不知道如此大文件的性能。性能并不是非常重要,但它应该处于可接受的标准。
它应该处于可接受的标准
我们不知道可接受的标准是什么。如果我们谈论交互式用户,可能不会有一个简单的解决方案可以扫描 300 万个文件并在不到 5 秒的时间内返回内容。
一个合理的解决方案是搜索索引,可能基于Lucence http://lucene.apache.org/.
基于扫描仪/grep/查找等的解决方案的主要问题是它们速度慢,无法扩展,并且必须一遍又一遍地完成昂贵的扫描工作(除非您存储中间结果......但这会并不简单,而且基本上是索引器的人工昂贵的重新实现)。当使用索引时,只有索引的创建和更新是昂贵的,查询是便宜的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)