Solr クラスターに多数のドキュメントが保存されており、特定のクエリで大量 (約 2,000 万) のドキュメントを取得したいと考えています。行のバッチ(たとえば、10000)を読み取り、パラメーターを使用して次のバッチに移動する標準的なアプローチを使用しstart
ます。しかし、約1 400 000のドキュメントの後、私は取得し始めていますOutOfMemoryError
。これは、クライアントにドキュメントを送信する前に Solr がドキュメントをソートする方法によるものだと思います。私の知る限り、優先度キューを使用して上位 N 個の結果のみを取得するため、すべてのドキュメントのヘッダーをメモリにロードする必要はありません。ただし、たとえば 1,000,000 から 1,010,000 までの結果を返すように要求すると、以前の 1,000,000 ドキュメントすべてのヘッダーもロードする必要があります。
これを回避し、ソートせずにクエリを満たすすべての結果を取得する方法を探しています。それを行う方法はありますか?そうでない場合、Solr から多数の結果を取得する適切な方法は何ですか?