큰 XML 파일 (1Gb)이 있습니다. 이 xml 파일에 대해 많은 쿼리를 작성해야합니다 (예 : xpath 사용). 결과는 XML의 작은 부분입니다. 쿼리가 가능한 빨리 수행되기를 원하지만 1Gb 파일은 작업 메모리에 너무 클 수 있습니다.큰 xml 파일의 무작위 쿼리
<all>
<record>
<id>1</id>
... lots of fields. (Very different fields per record including (sometimes) subrecords
so mapping on a relational database would be hard).
</record>
<record>
<id>2</id>
... lots of fields.
</record>
.. lots and lots and lots of records
</all>
은 내가 키로 예를 들어 사용 기록을 선택, 랜덤 액세스가 필요합니다
XML은 다음과 같이 보입니다. (이드가 가장 중요하지만 다른 필드도 키로 사용할 수 있습니다.) 나는 미리 쿼리를 알지 못하고 도착한 후 즉시 실행해야하며 일괄 실행은 아니지만 실시간으로 실행해야합니다. SAX는 모든 쿼리에 대해 전체 파일을 다시 읽지 않으므로별로 유망하지 않습니다. 그러나 DOM은 파일이 매우 커서 추가 구조 오버 헤드를 추가하는 것이 거의 확실하게 작업 메모리에 적합하지 않음을 의미하므로 매우 유망한 것으로 보입니다.
이 문제를 해결하는 데 가장 유용한 Java 라이브러리/접근 방법은 무엇입니까?
_ 어떤 종류의 검색어를 작성해야합니까? 쿼리가 일괄 처리되거나 요청시 제공됩니까? 당신이 제공 할 수있는 시나리오의 다른 특징은 무엇입니까? –
문제를 명확하게 설명하는 편집을위한 +1 –