gpt4 book ai didi

java - 如何在非常大的 XML 文件中快速搜索/索引?

转载 作者:行者123 更新时间:2023-12-04 05:12:51 25 4
gpt4 key购买 nike

假设我有一个非常大的 XML 文件,其中的条目有 <id>标签或 id=""属性。

如何通过这个id搜索?我可以创建一些搜索索引或其他东西吗?

目前我正在使用 org.w3.dom .它有什么搜索手段吗?

更新

我的大 XML 文件是一个下载的维基百科。它是40G大小,有数百万条记录。

是否可以使用 Lucene 之类的东西对其进行索引,然后快速搜索 ID?

更新2

试过BaseX .它吃了我的 XML 并创建了 32Gb 的数据库。不明白它是否截断了数据或 32Gb 是因为一些压缩。

不幸的是,按 ID 搜索需要 70-80 秒或更长时间。所以它比 Mediawiki API 查询更长。

最佳答案

所以为了读写XML文件,首先需要解析里面的数据。有不同类型的解析器,主要的是 DOM、SAX、StAX。

我不推荐使用 DOM 解析器进行 XML 解析,尤其是在解析大型 XML 文件时。因为 DOM 解析器首先将所有内容读入您的内存,然后尝试从中读取数据。如果您的 XML 文件非常大,这是非常低效的。 SAX 和 StAX 解析器基本上是 DOM 的改进版本。从这里阅读 Java 中的 StAX 解析器

StAX parser tutorial

我认为 StAX 解析器是最适合读取大型 XML 文件的解析器。

仅供引用,这里也是 SAX 解析器的链接

SAX parser tutorial in Java

关于java - 如何在非常大的 XML 文件中快速搜索/索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com