2

<id>タグまたはid=""プロパティを持つエントリを含む非常に大きなXMLファイルがあるとします。

このIDで検索する方法は?検索インデックスなどを作成できますか?

現在使用してorg.w3.domいます。検索する手段はありますか?

アップデート

私の大きなXMLファイルはダウンロードされたウィキペディアです。40Gサイズで、何百万ものレコードがあります。

Luceneのようなインデックスを付けて、IDをすばやく検索することは可能ですか?

UPDATE2

試しBaseXました。それは私のXMLを食べ、32Gbのデータベースを作成しました。データが切り捨てられたのか、32Gbが圧縮によるものなのかがわかりません。

残念ながら、IDで検索するには70〜80秒以上かかります。したがって、MediawikiAPIクエリよりも長くなります。

4

1 に答える 1

3

したがって、XML ファイルを読み書きするには、まず内部のデータを解析する必要があります。パーサーにはさまざまな種類があり、主要なものは DOM、SAX、StAX です。

特に大きな XML ファイルの解析に関しては、XML 解析に DOM パーサーをお勧めしません。DOM パーサーは最初にすべてをメモリに読み込んでから、そこからデータを読み取ろうとするためです。XML ファイルが非常に大きい場合、これは非常に非効率的です。SAX および StAX パーサーは、基本的に DOM の改良版です。ここからJavaのStAXパーサーを読んでください

StAX パーサーのチュートリアル

大容量のXMLファイルを読むのに最適なパーサーはStAXパーサーだと思います。

参考までに、ここにもSAXパーサーへのリンクがあります

Java での SAX パーサーのチュートリアル

于 2013-02-03T09:49:04.223 に答える