dsmiley commented on a change in pull request #180:
URL: https://github.com/apache/lucene/pull/180#discussion_r655070117
##########
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:
Maybe the above array should act as a cache (lazy init) instead of
forcing eager load for all segments? There may be a thread-safety concern
there but maybe not since the only risk is doing more work on a race.
--
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:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]