3
3
* SPDX-License-Identifier: Apache-2.0
4
4
*/
5
5
6
- package org .opensearch .knn .index .codec .KNN9120Codec ;
6
+ package org .opensearch .knn .index .codec .KNN10010Codec ;
7
7
8
8
import org .apache .lucene .codecs .StoredFieldsReader ;
9
- import org .apache .lucene .index .FieldInfo ;
10
9
import org .apache .lucene .index .SegmentReadState ;
11
10
import org .apache .lucene .index .StoredFieldVisitor ;
12
11
import org .apache .lucene .util .IOUtils ;
13
12
import org .opensearch .index .fieldvisitor .FieldsVisitor ;
13
+ import org .opensearch .knn .index .codec .derivedsource .DerivedFieldInfo ;
14
14
import org .opensearch .knn .index .codec .derivedsource .DerivedSourceReadersSupplier ;
15
15
import org .opensearch .knn .index .codec .derivedsource .DerivedSourceStoredFieldVisitor ;
16
- import org .opensearch .knn .index .codec .derivedsource .DerivedSourceVectorInjector ;
16
+ import org .opensearch .knn .index .codec .derivedsource .DerivedSourceVectorTransformer ;
17
17
18
18
import java .io .IOException ;
19
19
import java .util .List ;
20
20
21
- public class KNN9120DerivedSourceStoredFieldsReader extends StoredFieldsReader {
21
+ public class KNN10010DerivedSourceStoredFieldsReader extends StoredFieldsReader {
22
22
private final StoredFieldsReader delegate ;
23
- private final List <FieldInfo > derivedVectorFields ;
23
+ private final List <DerivedFieldInfo > derivedVectorFields ;
24
24
private final DerivedSourceReadersSupplier derivedSourceReadersSupplier ;
25
25
private final SegmentReadState segmentReadState ;
26
26
private final boolean shouldInject ;
27
27
28
- private final DerivedSourceVectorInjector derivedSourceVectorInjector ;
28
+ private final DerivedSourceVectorTransformer derivedSourceVectorTransformer ;
29
29
30
30
/**
31
31
*
@@ -35,18 +35,18 @@ public class KNN9120DerivedSourceStoredFieldsReader extends StoredFieldsReader {
35
35
* @param segmentReadState SegmentReadState for the segment
36
36
* @throws IOException in case of I/O error
37
37
*/
38
- public KNN9120DerivedSourceStoredFieldsReader (
38
+ public KNN10010DerivedSourceStoredFieldsReader (
39
39
StoredFieldsReader delegate ,
40
- List <FieldInfo > derivedVectorFields ,
40
+ List <DerivedFieldInfo > derivedVectorFields ,
41
41
DerivedSourceReadersSupplier derivedSourceReadersSupplier ,
42
42
SegmentReadState segmentReadState
43
43
) throws IOException {
44
44
this (delegate , derivedVectorFields , derivedSourceReadersSupplier , segmentReadState , true );
45
45
}
46
46
47
- private KNN9120DerivedSourceStoredFieldsReader (
47
+ private KNN10010DerivedSourceStoredFieldsReader (
48
48
StoredFieldsReader delegate ,
49
- List <FieldInfo > derivedVectorFields ,
49
+ List <DerivedFieldInfo > derivedVectorFields ,
50
50
DerivedSourceReadersSupplier derivedSourceReadersSupplier ,
51
51
SegmentReadState segmentReadState ,
52
52
boolean shouldInject
@@ -56,34 +56,37 @@ private KNN9120DerivedSourceStoredFieldsReader(
56
56
this .derivedSourceReadersSupplier = derivedSourceReadersSupplier ;
57
57
this .segmentReadState = segmentReadState ;
58
58
this .shouldInject = shouldInject ;
59
- this .derivedSourceVectorInjector = createDerivedSourceVectorInjector ();
59
+ this .derivedSourceVectorTransformer = createDerivedSourceVectorTransformer ();
60
60
}
61
61
62
- private DerivedSourceVectorInjector createDerivedSourceVectorInjector () throws IOException {
63
- return new DerivedSourceVectorInjector (derivedSourceReadersSupplier , segmentReadState , derivedVectorFields );
62
+ private DerivedSourceVectorTransformer createDerivedSourceVectorTransformer () throws IOException {
63
+ return new DerivedSourceVectorTransformer (derivedSourceReadersSupplier , segmentReadState , derivedVectorFields );
64
64
}
65
65
66
66
@ Override
67
67
public void document (int docId , StoredFieldVisitor storedFieldVisitor ) throws IOException {
68
68
// If the visitor has explicitly indicated it does not need the fields, we should not inject them
69
- boolean isVisitorNeedFields = true ;
70
- if (storedFieldVisitor instanceof FieldsVisitor ) {
71
- isVisitorNeedFields = derivedSourceVectorInjector .shouldInject (
72
- ((FieldsVisitor ) storedFieldVisitor ).includes (),
73
- ((FieldsVisitor ) storedFieldVisitor ).excludes ()
74
- );
75
- }
76
- if (shouldInject && isVisitorNeedFields ) {
77
- delegate .document (docId , new DerivedSourceStoredFieldVisitor (storedFieldVisitor , docId , derivedSourceVectorInjector ));
69
+ if (shouldInject && doesVisitorNeedVectors (storedFieldVisitor )) {
70
+ delegate .document (docId , new DerivedSourceStoredFieldVisitor (storedFieldVisitor , docId , derivedSourceVectorTransformer ));
78
71
return ;
79
72
}
80
73
delegate .document (docId , storedFieldVisitor );
81
74
}
82
75
76
+ private boolean doesVisitorNeedVectors (StoredFieldVisitor delegate ) {
77
+ if (delegate instanceof FieldsVisitor ) {
78
+ return derivedSourceVectorTransformer .shouldInject (
79
+ ((FieldsVisitor ) delegate ).includes (),
80
+ ((FieldsVisitor ) delegate ).excludes ()
81
+ );
82
+ }
83
+ return true ;
84
+ }
85
+
83
86
@ Override
84
87
public StoredFieldsReader clone () {
85
88
try {
86
- return new KNN9120DerivedSourceStoredFieldsReader (
89
+ return new KNN10010DerivedSourceStoredFieldsReader (
87
90
delegate .clone (),
88
91
derivedVectorFields ,
89
92
derivedSourceReadersSupplier ,
@@ -102,7 +105,7 @@ public void checkIntegrity() throws IOException {
102
105
103
106
@ Override
104
107
public void close () throws IOException {
105
- IOUtils .close (delegate , derivedSourceVectorInjector );
108
+ IOUtils .close (delegate , derivedSourceVectorTransformer );
106
109
}
107
110
108
111
/**
@@ -114,7 +117,7 @@ public void close() throws IOException {
114
117
*/
115
118
private StoredFieldsReader cloneForMerge () {
116
119
try {
117
- return new KNN9120DerivedSourceStoredFieldsReader (
120
+ return new KNN10010DerivedSourceStoredFieldsReader (
118
121
delegate .getMergeInstance (),
119
122
derivedVectorFields ,
120
123
derivedSourceReadersSupplier ,
@@ -134,8 +137,8 @@ private StoredFieldsReader cloneForMerge() {
134
137
* @return wrapped stored fields reader
135
138
*/
136
139
public static StoredFieldsReader wrapForMerge (StoredFieldsReader storedFieldsReader ) {
137
- if (storedFieldsReader instanceof KNN9120DerivedSourceStoredFieldsReader ) {
138
- return ((KNN9120DerivedSourceStoredFieldsReader ) storedFieldsReader ).cloneForMerge ();
140
+ if (storedFieldsReader instanceof KNN10010DerivedSourceStoredFieldsReader ) {
141
+ return ((KNN10010DerivedSourceStoredFieldsReader ) storedFieldsReader ).cloneForMerge ();
139
142
}
140
143
return storedFieldsReader ;
141
144
}
0 commit comments