我还没有收到详细信息,但我正准备用 Java 实现一个命令行搜索工具来搜索包含两个字段(docid、orgid)的文件。我了解到这个文件一开始很小,并且一直在变大。我需要能够传入 docid 并返回 orgid。
谁能告诉我 - 搜索我上面提到的平面文件的最佳技术是什么?
目前,我们仅处理文件中的 50,000 行(超过两个月)数据,但一旦系统到位,数据增长速度会更快。
似乎将其存储在可搜索的二进制系统中,但我不确定首先要考虑什么。
我可以将其转储到数据库中,但这似乎有点矫枉过正。另外,要做到这一点,我必须将数据库安装在服务器上,这将很困难。
最佳答案
如果可能的话,我会从一开始就在某个数据库中插入数据(可能是像 hsqldb 或 h2 这样的简单数据。
您的数据行为类似于 map ,所以可能类似于 mapdb会更好(但你必须确保你的架构不太可能改变)。
如果您仍然需要使用此平面文件,也许 Grep 是最好的主意(它是搜索平面文件最快的工具)
关于java - 快速搜索不断增长的大型平面文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074865/