我有一个 XML 文档,我需要使其可通过网络应用程序进行搜索。该文档目前只有 6mb..但可能非常大,因此根据我的研究,SAX 似乎是最佳选择。
所以我的问题是,给定搜索词我应该:
我是否将文档加载到内存中一次(加载到 bean 列表中,然后 将其存储在内存中)?然后在需要的时候搜索它? 或
解析文档以查找所需的搜索词并仅添加 与 beans 列表匹配吗?并对每个重复此过程 搜索?
我对 Web 应用程序没有那么丰富的经验,但我正在尝试找出解决此问题的最佳方法,有使用 Tomcat、SAX 和 Java Web 应用程序的人对哪一个最佳方案有任何建议吗?
问候, 内特
最佳答案
当您说您的 XML 文件可能非常大时,我假设您不想将其保留在内存中。如果您希望它可搜索,我理解您需要索引访问,而不是每次都完整读取。恕我直言,实现这一目标的唯一方法是解析文件并将数据加载到轻量级文件数据库(Derby、HSQL 或 H2)中,并向数据库添加相关索引。数据库确实允许对内存外数据进行索引搜索,但 XML 文件则不允许。
关于java - 如何在 Web 应用程序中高效地搜索大型 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25590205/