在包含1亿个字符串的大文本文件中进行高效子字符串搜索(无重复字符串)

Vin*_*oni 5 java mysql lucene search file

我有一个大文本文件(1.5 Gb)有100万字符串(没有重复字符串),所有字符串在文件中逐行排列.我想在java中进行wepapplication,以便当用户给出一个关键字(Substring)时,他得到包含该关键字的文件中存在的所有字符串的计数.我知道LUCENE已经有一种技术......还有其他方法可以做到这一点.我想在3-4秒内得到结果.我的系统有4GB RAM和双核心配置....需要在"JAVA ONLY"中执行此操作

Hem*_*ant 0

尝试使用哈希表。可以做的另一件事是类似于 MAP-REDUCE 的任何方法。我想说的是,你可以尝试使用倒排索引。谷歌也使用同样的技术。您可以创建一个停用词文件,在其中放置可以忽略的单词,例如 I、am、the、a、an、in、on 等。

这是我认为唯一可能的事情。我在某处读到,为了搜索,你可以使用数组。