12
12
import org .apache .lucene .codecs .FilterCodec ;
13
13
import org .apache .lucene .codecs .KnnVectorsFormat ;
14
14
import org .apache .lucene .codecs .StoredFieldsFormat ;
15
+ import org .apache .lucene .codecs .lucene101 .Lucene101Codec ;
15
16
import org .apache .lucene .codecs .perfield .PerFieldKnnVectorsFormat ;
16
17
import org .opensearch .index .mapper .MapperService ;
18
+ import org .opensearch .knn .index .codec .KNN80Codec .KNN80CompoundFormat ;
19
+ import org .opensearch .knn .index .codec .KNN80Codec .KNN80DocValuesFormat ;
17
20
import org .opensearch .knn .index .codec .KNN9120Codec .DerivedSourceStoredFieldsFormat ;
18
- import org .opensearch .knn .index .codec .KNNCodecVersion ;
19
- import org .opensearch .knn .index .codec .KNNFormatFacade ;
21
+ import org .opensearch .knn .index .codec .KNN9120Codec .KNN9120PerFieldKnnVectorsFormat ;
20
22
import org .opensearch .knn .index .codec .derivedsource .DerivedSourceReadersSupplier ;
21
23
24
+ import java .util .Optional ;
25
+
22
26
/**
23
27
* KNN Codec that wraps the Lucene Codec which is part of Lucene 10.0.1
24
28
*/
25
29
26
30
public class KNN10010Codec extends FilterCodec {
27
31
28
- private static final KNNCodecVersion VERSION = KNNCodecVersion .V_10_01_0 ;
29
- private final KNNFormatFacade knnFormatFacade ;
32
+ private static final String NAME = "KNN10010Codec" ;
33
+ public static final Codec DEFAULT_DELEGATE = new Lucene101Codec ();
34
+ private static final PerFieldKnnVectorsFormat DEFAULT_KNN_VECTOR_FORMAT = new KNN9120PerFieldKnnVectorsFormat (Optional .empty ());
35
+
30
36
private final PerFieldKnnVectorsFormat perFieldKnnVectorsFormat ;
31
37
private final StoredFieldsFormat storedFieldsFormat ;
32
38
33
39
private final MapperService mapperService ;
34
40
35
41
/**
36
- * No arg constructor that uses Lucene99 as the delegate
42
+ * No arg constructor that uses Lucene101Codec as the delegate
37
43
*/
38
44
public KNN10010Codec () {
39
- this (VERSION . getDefaultCodecDelegate (), VERSION . getPerFieldKnnVectorsFormat () , null );
45
+ this (DEFAULT_DELEGATE , DEFAULT_KNN_VECTOR_FORMAT , null );
40
46
}
41
47
42
48
/**
@@ -47,22 +53,21 @@ public KNN10010Codec() {
47
53
* @param knnVectorsFormat per field format for KnnVector
48
54
*/
49
55
@ Builder
50
- protected KNN10010Codec (Codec delegate , PerFieldKnnVectorsFormat knnVectorsFormat , MapperService mapperService ) {
51
- super (VERSION .getCodecName (), delegate );
52
- knnFormatFacade = VERSION .getKnnFormatFacadeSupplier ().apply (delegate );
56
+ public KNN10010Codec (Codec delegate , PerFieldKnnVectorsFormat knnVectorsFormat , MapperService mapperService ) {
57
+ super (NAME , delegate );
53
58
perFieldKnnVectorsFormat = knnVectorsFormat ;
54
59
this .mapperService = mapperService ;
55
60
this .storedFieldsFormat = getStoredFieldsFormat ();
56
61
}
57
62
58
63
@ Override
59
64
public DocValuesFormat docValuesFormat () {
60
- return knnFormatFacade .docValuesFormat ();
65
+ return new KNN80DocValuesFormat ( delegate .docValuesFormat () );
61
66
}
62
67
63
68
@ Override
64
69
public CompoundFormat compoundFormat () {
65
- return knnFormatFacade .compoundFormat ();
70
+ return new KNN80CompoundFormat ( delegate .compoundFormat () );
66
71
}
67
72
68
73
@ Override
0 commit comments