jpountz commented on a change in pull request #180:
URL: https://github.com/apache/lucene/pull/180#discussion_r654536493



##########
File path: lucene/core/src/java/org/apache/lucene/index/BaseCompositeReader.java
##########
@@ -112,10 +112,29 @@ protected BaseCompositeReader(R[] subReaders, 
Comparator<R> subReadersSorter) th
   }
 
   @Override
-  public final Fields getTermVectors(int docID) throws IOException {
-    ensureOpen();
-    final int i = readerIndex(docID); // find subreader num
-    return subReaders[i].getTermVectors(docID - starts[i]); // dispatch to 
subreader
+  public final TermVectors getTermVectorsReader() {
+    TermVectors[] termVectors = new TermVectors[subReaders.length];
+
+    // subReaders is a collection of segmentReaders
+    for (int i = 0; i < subReaders.length; i++) {
+      // the getTermVectorsReader would clone a new instance, hence saving it 
into an array
+      // to avoid re-cloning from direct subReaders[i].getTermVectorsReader() 
call
+      termVectors[i] = subReaders[i].getTermVectorsReader();
+    }
+
+    return new TermVectors() {

Review comment:
       The general rule is that we try very hard to avoid allocating on a 
per-document basis, but that it is fine on a per-reader or per-segment basis. 
Since this one is per-reader, I'm not concerned.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to