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

标签 java mysql file search lucene

我有一个包含 1 亿个字符串(无重复字符串)的大型文本文件 (1.5 Gb),并且所有字符串都在文件中逐行排列。我想在 java 中制作一个 wepapplication,这样当用户给出一个关键字(子字符串)时,他会得到包含该关键字的文件中存在的所有字符串的计数。 我已经知道一种 LUCENE 技术了……还有其他方法吗??我想要在 3-4 秒内得到结果。 我的系统有 4GB RAM 和双核配置....需要在“仅 JAVA”中执行此操作

最佳答案

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

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

关于java - 在包含 1 亿个字符串(无重复字符串)的大型文本文件中进行高效子字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633286/

相关文章:

java - 如何获得与网格布局内联的 jpg

java - MapReduce编程

php - Codeigniter:如何在 JOIN 查询中包含 SUM() 和 COUNT()?

php - 无法从表单获取数据到我的 mysql 数据库

linux - 唯一标识文件

java - 复制给定 url 的文件

c - fork() - 父进程和子进程访问多个文件

java - 从java程序调用SVN命令

java - java中如何修改引用变量的值

mysql - 加载 NULL 值 INT