java - 快速搜索不断增长的大型平面文件的最佳方法是什么?

标签 java file search binary hashmap

我还没有收到详细信息,但我正准备用 Java 实现一个命令行搜索工具来搜索包含两个字段(docid、orgid)的文件。我了解到这个文件一开始很小,并且一直在变大。我需要能够传入 docid 并返回 orgid。

谁能告诉我 - 搜索我上面提到的平面文件的最佳技术是什么?

目前,我们仅处理文件中的 50,000 行(超过两个月)数据,但一旦系统到位,数据增长速度会更快。

似乎将其存储在可搜索的二进制系统中,但我不确定首先要考虑什么。

我可以将其转储到数据库中,但这似乎有点矫枉过正。另外,要做到这一点,我必须将数据库安装在服务器上,这将很困难。

最佳答案

如果可能的话,我会从一开始就在某个数据库中插入数据(可能是像 hsqldbh2 这样的简单数据。

您的数据行为类似于 map ,所以可能类似于 mapdb会更好(但你必须确保你的架构不太可能改变)。

如果您仍然需要使用此平面文件,也许 Grep 是最好的主意(它是搜索平面文件最快的工具)

关于java - 快速搜索不断增长的大型平面文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074865/

相关文章:

java - 操作已完成,HTTP 状态代码为 409(失败)

java - IDE 真的值得吗?

c# - 在编辑时在 C# 中读取和写入打开的 excel 文件

search - 有关搜索结果的Elasticsearch相关性的问题

python - 为什么我的 A* 搜索返回与 UniformCostSearch 相同的扩展空间?

java去除标点符号递归方法

java - Android 查找缺失号码

Python - 一个干净的方法来解决这个问题?

c - .o 与 C 中的 .out

search - 对于网络搜索排名,排名合并通常是如何进行的?