|
12 | 12 | import org.apache.lucene.codecs.KnnVectorsReader; |
13 | 13 | import org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsReader; |
14 | 14 | import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat; |
15 | | -import org.apache.lucene.index.CodecReader; |
16 | 15 | import org.apache.lucene.index.FieldInfo; |
17 | | -import org.apache.lucene.index.FilterLeafReader; |
18 | 16 | import org.apache.lucene.index.IndexReader; |
19 | 17 | import org.apache.lucene.index.LeafReaderContext; |
20 | 18 | import org.apache.lucene.index.MergePolicy; |
@@ -68,18 +66,12 @@ private static long estimateFieldMemory(FieldInfo fieldInfo, SegmentReader segme |
68 | 66 | } |
69 | 67 |
|
70 | 68 | private static long estimateVectorFieldMemory(FieldInfo fieldInfo, SegmentReader segmentReader) { |
71 | | - long maxMem = 0; |
72 | | - for (LeafReaderContext ctx : segmentReader.leaves()) { |
73 | | - CodecReader codecReader = (CodecReader) FilterLeafReader.unwrap(ctx.reader()); |
74 | | - KnnVectorsReader vectorsReader = codecReader.getVectorReader(); |
75 | | - if (vectorsReader instanceof PerFieldKnnVectorsFormat.FieldsReader perFieldKnnVectorsFormat) { |
76 | | - vectorsReader = perFieldKnnVectorsFormat.getFieldReader(fieldInfo.getName()); |
77 | | - } |
78 | | - |
79 | | - final long estimation = getVectorFieldEstimation(fieldInfo, segmentReader, vectorsReader); |
80 | | - maxMem = Math.max(maxMem, estimation); |
| 69 | + KnnVectorsReader vectorsReader = segmentReader.getVectorReader(); |
| 70 | + if (vectorsReader instanceof PerFieldKnnVectorsFormat.FieldsReader perFieldKnnVectorsFormat) { |
| 71 | + vectorsReader = perFieldKnnVectorsFormat.getFieldReader(fieldInfo.getName()); |
81 | 72 | } |
82 | | - return maxMem; |
| 73 | + |
| 74 | + return getVectorFieldEstimation(fieldInfo, segmentReader, vectorsReader); |
83 | 75 | } |
84 | 76 |
|
85 | 77 | private static long getVectorFieldEstimation(FieldInfo fieldInfo, SegmentReader segmentReader, KnnVectorsReader vectorsReader) { |
|
0 commit comments