如何在二进制文件中搜索

时间:2017-10-30 18:03:36

标签: architecture

我正在使用QDataStream以二进制格式保存项目文件的应用程序。他们让我来一个设计,在这些项目文件中启用搜索机制。

例如,应该可以找到包含特定参数的项目,这些参数位于序列化顺序的深处。

我能够采用两种不可行的方法:

  • 将项目文件反序列化为相应的类对象,然后查询相关成员。对每个项目文件重复此操作。

这涉及大量文件IO,可能会非常慢。

  • 将项目文件映射到RDMS,因为它们来来去去查询。

由于项目文件非常复杂,因此设计数据库表似乎很难。

你的方式是什么?我对任何方法,技术,框架,图书馆开放......

1 个答案:

答案 0 :(得分:1)

你是对的,因为这是一个非常难以解决的问题。而不是编写自己的潜在错误和/或残缺的实现,为什么不使用已经为您完成所有操作的LuceneIndex?

该库有许多流行的实现,包括Java,C#和C++(我假设您对此感兴趣)。