You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2020/07/09 20:41:28 UTC

[lucene-solr] branch jira/SOLR-14608-export updated: SOLR-14608: Add method for creating the MergeIterator

This is an automated email from the ASF dual-hosted git repository.

jbernste pushed a commit to branch jira/SOLR-14608-export
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/jira/SOLR-14608-export by this push:
     new e0fc38f  SOLR-14608: Add method for creating the MergeIterator
e0fc38f is described below

commit e0fc38f1b1093cd761da03e561df6395d3a79fc1
Author: Joel Bernstein <jb...@apache.org>
AuthorDate: Thu Jul 9 16:40:38 2020 -0400

    SOLR-14608: Add method for creating the MergeIterator
---
 .../java/org/apache/solr/handler/export/ExportWriter.java    | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
index c235062..5273c7c 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
@@ -647,6 +647,18 @@ public class ExportWriter implements SolrCore.RawWriter, Closeable {
     }
   }
 
+  private MergeIterator getMergeIterator(List<LeafReaderContext> leafs, FixedBitSet[] bits, SortDoc sortDoc) {
+    
+    int sortQueueSize = Math.min(100000/bits.length, 30000);
+    SegmentIterator[] segmentIterators = new SegmentIterator[bits.length];
+    for(int i=0; i<segmentIterators.length; i++) {
+      SortQueue sortQueue = new SortQueue(sortQueueSize, sortDoc);
+      segmentIterators[i] = new SegmentIterator(bits[i], leafs.get(i), sortQueue, sortDoc);
+    }
+    return new MergeIterator(segmentIterators);
+  }
+
+
   private static class SegmentIterator {
 
     private FixedBitSet bits;