假设我有一个非常大的XML文件,其条目包含<id>
个标签或id=""
属性。
如何通过此ID进行搜索?我可以创建一些搜索索引吗。
目前我正在使用org.w3.dom
。它有一些搜索方法吗?
更新
我的大型XML文件是下载的维基百科。它的大小为40G,有数百万条记录。
是否可以使用像Lucene之类的东西对其进行索引,然后快速搜索ID?
UPDATE2
尝试了BaseX
。它吃了我的XML并创建了32Gb的数据库。不明白是否截断数据或32Gb是因为某些压缩。
不幸的是,按ID搜索需要70-80秒或更长时间。所以它比Mediawiki API查询更长。
答案 0 :(得分:3)
因此,为了读写XML文件,您需要先解析数据。有不同类型的解析器,主要的解析器是DOM,SAX,StAX。
我不建议使用DOM解析器进行XML解析,尤其是在解析大型XML文件时。因为DOM解析器首先将所有内容读入您的内存,然后尝试从中读取数据。如果您的XML文件非常大,那么效率极低。 SAX和StAX解析器基本上是DOM的改进版本。从这里读取Java中的StAX解析器
我认为StAX解析器是最适合读取大型XML文件的解析器。
仅供参考,这里也是SAX解析器的链接