File tree 1 file changed +15
-6
lines changed
lucene/core/src/java/org/apache/lucene/index
1 file changed +15
-6
lines changed Original file line number Diff line number Diff line change @@ -348,15 +348,24 @@ public void prefetch(int docID) throws IOException {
348
348
@ Override
349
349
public Fields get (int docID ) throws IOException {
350
350
ParallelFields fields = null ;
351
- for (Map .Entry <String , LeafReader > ent : tvFieldToReader .entrySet ()) {
352
- String fieldName = ent .getKey ();
353
- TermVectors termVectors = readerToTermVectors .get (ent .getValue ());
354
- Terms vector = termVectors .get (docID , fieldName );
355
- if (vector != null ) {
351
+
352
+ // Step 2: Fetch all term vectors once per reader
353
+ for (Map .Entry <LeafReader , TermVectors > entry : readerToTermVectors .entrySet ()) {
354
+ TermVectors termVectors = entry .getValue ();
355
+ Fields docFields = termVectors .get (docID ); // Fetch all fields at once
356
+
357
+ if (docFields != null ) {
356
358
if (fields == null ) {
357
359
fields = new ParallelFields ();
358
360
}
359
- fields .addField (fieldName , vector );
361
+
362
+ // Step 3: Aggregate only required fields
363
+ for (String fieldName : docFields ) {
364
+ Terms vector = docFields .terms (fieldName );
365
+ if (vector != null ) {
366
+ fields .addField (fieldName , vector );
367
+ }
368
+ }
360
369
}
361
370
}
362
371
You can’t perform that action at this time.
0 commit comments