Skip to content

Commit 7f2ddff

Browse files
authored
Use TestUtil.alwaysKnnVectorsFormat where possible in tests (#128477)
This commit is a minor refactoring of several tests to use TestUtil.alwaysKnnVectorsFormat where possible, rather than extending Lucene101Codec. The alwaysKnnVectorsFormat static method returns an AssertingCodec that delegates to the default codec for everything except KnnVectorsFormat. The primary motivation for this change is to avoid extending a version specific Lucene codec that will require to be updated when Lucene updates its codec ( as can be seen in the lucene_snapshot branch, from Lucene101Codec to Lucene103Codec ).
1 parent 0e3f379 commit 7f2ddff

10 files changed

+38
-75
lines changed

server/src/test/java/org/elasticsearch/index/codec/vectors/ES813FlatVectorFormatTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
package org.elasticsearch.index.codec.vectors;
1111

1212
import org.apache.lucene.codecs.Codec;
13-
import org.apache.lucene.codecs.KnnVectorsFormat;
1413
import org.apache.lucene.codecs.KnnVectorsReader;
15-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
1614
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
1715
import org.apache.lucene.document.Document;
1816
import org.apache.lucene.document.KnnFloatVectorField;
@@ -23,6 +21,7 @@
2321
import org.apache.lucene.index.LeafReader;
2422
import org.apache.lucene.store.Directory;
2523
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
24+
import org.apache.lucene.tests.util.TestUtil;
2625
import org.elasticsearch.common.logging.LogConfigurator;
2726
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
2827

@@ -37,14 +36,11 @@ public class ES813FlatVectorFormatTests extends BaseKnnVectorsFormatTestCase {
3736
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
3837
}
3938

39+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES813FlatVectorFormat());
40+
4041
@Override
4142
protected Codec getCodec() {
42-
return new Lucene101Codec() {
43-
@Override
44-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
45-
return new ES813FlatVectorFormat();
46-
}
47-
};
43+
return codec;
4844
}
4945

5046
public void testSearchWithVisitedLimit() {

server/src/test/java/org/elasticsearch/index/codec/vectors/ES813Int8FlatVectorFormatTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
package org.elasticsearch.index.codec.vectors;
1111

1212
import org.apache.lucene.codecs.Codec;
13-
import org.apache.lucene.codecs.KnnVectorsFormat;
1413
import org.apache.lucene.codecs.KnnVectorsReader;
15-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
1614
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
1715
import org.apache.lucene.document.Document;
1816
import org.apache.lucene.document.KnnFloatVectorField;
@@ -23,6 +21,7 @@
2321
import org.apache.lucene.index.LeafReader;
2422
import org.apache.lucene.store.Directory;
2523
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
24+
import org.apache.lucene.tests.util.TestUtil;
2625
import org.elasticsearch.common.logging.LogConfigurator;
2726
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
2827

@@ -37,14 +36,11 @@ public class ES813Int8FlatVectorFormatTests extends BaseKnnVectorsFormatTestCase
3736
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
3837
}
3938

39+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES813Int8FlatVectorFormat());
40+
4041
@Override
4142
protected Codec getCodec() {
42-
return new Lucene101Codec() {
43-
@Override
44-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
45-
return new ES813Int8FlatVectorFormat();
46-
}
47-
};
43+
return codec;
4844
}
4945

5046
public void testSearchWithVisitedLimit() {

server/src/test/java/org/elasticsearch/index/codec/vectors/ES814HnswScalarQuantizedVectorsFormatTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
package org.elasticsearch.index.codec.vectors;
1111

1212
import org.apache.lucene.codecs.Codec;
13-
import org.apache.lucene.codecs.KnnVectorsFormat;
1413
import org.apache.lucene.codecs.KnnVectorsReader;
15-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
1614
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
1715
import org.apache.lucene.document.Document;
1816
import org.apache.lucene.document.Field;
@@ -29,6 +27,7 @@
2927
import org.apache.lucene.store.Directory;
3028
import org.apache.lucene.store.MMapDirectory;
3129
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
30+
import org.apache.lucene.tests.util.TestUtil;
3231
import org.elasticsearch.common.logging.LogConfigurator;
3332
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
3433

@@ -46,14 +45,11 @@ public class ES814HnswScalarQuantizedVectorsFormatTests extends BaseKnnVectorsFo
4645
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
4746
}
4847

48+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES814HnswScalarQuantizedVectorsFormat());
49+
4950
@Override
5051
protected Codec getCodec() {
51-
return new Lucene101Codec() {
52-
@Override
53-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
54-
return new ES814HnswScalarQuantizedVectorsFormat();
55-
}
56-
};
52+
return codec;
5753
}
5854

5955
// The following test scenarios are similar to their superclass namesakes,

server/src/test/java/org/elasticsearch/index/codec/vectors/ES815BitFlatVectorFormatTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
package org.elasticsearch.index.codec.vectors;
1111

1212
import org.apache.lucene.codecs.Codec;
13-
import org.apache.lucene.codecs.KnnVectorsFormat;
1413
import org.apache.lucene.codecs.KnnVectorsReader;
15-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
1614
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
1715
import org.apache.lucene.document.Document;
1816
import org.apache.lucene.document.KnnByteVectorField;
@@ -23,21 +21,19 @@
2321
import org.apache.lucene.index.LeafReader;
2422
import org.apache.lucene.index.VectorSimilarityFunction;
2523
import org.apache.lucene.store.Directory;
24+
import org.apache.lucene.tests.util.TestUtil;
2625
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
2726
import org.junit.Before;
2827

2928
import java.io.IOException;
3029

3130
public class ES815BitFlatVectorFormatTests extends BaseKnnBitVectorsFormatTestCase {
3231

32+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES815BitFlatVectorFormat());
33+
3334
@Override
3435
protected Codec getCodec() {
35-
return new Lucene101Codec() {
36-
@Override
37-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
38-
return new ES815BitFlatVectorFormat();
39-
}
40-
};
36+
return codec;
4137
}
4238

4339
@Before

server/src/test/java/org/elasticsearch/index/codec/vectors/ES815HnswBitVectorsFormatTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
package org.elasticsearch.index.codec.vectors;
1111

1212
import org.apache.lucene.codecs.Codec;
13-
import org.apache.lucene.codecs.KnnVectorsFormat;
1413
import org.apache.lucene.codecs.KnnVectorsReader;
15-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
1614
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
1715
import org.apache.lucene.document.Document;
1816
import org.apache.lucene.document.KnnByteVectorField;
@@ -23,21 +21,19 @@
2321
import org.apache.lucene.index.LeafReader;
2422
import org.apache.lucene.index.VectorSimilarityFunction;
2523
import org.apache.lucene.store.Directory;
24+
import org.apache.lucene.tests.util.TestUtil;
2625
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
2726
import org.junit.Before;
2827

2928
import java.io.IOException;
3029

3130
public class ES815HnswBitVectorsFormatTests extends BaseKnnBitVectorsFormatTestCase {
3231

32+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES815HnswBitVectorsFormat());
33+
3334
@Override
3435
protected Codec getCodec() {
35-
return new Lucene101Codec() {
36-
@Override
37-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
38-
return new ES815HnswBitVectorsFormat();
39-
}
40-
};
36+
return codec;
4137
}
4238

4339
@Before

server/src/test/java/org/elasticsearch/index/codec/vectors/es816/ES816BinaryQuantizedVectorsFormatTests.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.lucene.codecs.FilterCodec;
2424
import org.apache.lucene.codecs.KnnVectorsFormat;
2525
import org.apache.lucene.codecs.KnnVectorsReader;
26-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
2726
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
2827
import org.apache.lucene.document.Document;
2928
import org.apache.lucene.document.KnnFloatVectorField;
@@ -43,6 +42,7 @@
4342
import org.apache.lucene.search.TotalHits;
4443
import org.apache.lucene.store.Directory;
4544
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
45+
import org.apache.lucene.tests.util.TestUtil;
4646
import org.elasticsearch.common.logging.LogConfigurator;
4747
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
4848
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
@@ -63,14 +63,11 @@ public class ES816BinaryQuantizedVectorsFormatTests extends BaseKnnVectorsFormat
6363
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
6464
}
6565

66+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES816BinaryQuantizedRWVectorsFormat());
67+
6668
@Override
6769
protected Codec getCodec() {
68-
return new Lucene101Codec() {
69-
@Override
70-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
71-
return new ES816BinaryQuantizedRWVectorsFormat();
72-
}
73-
};
70+
return codec;
7471
}
7572

7673
public void testSearch() throws Exception {

server/src/test/java/org/elasticsearch/index/codec/vectors/es816/ES816HnswBinaryQuantizedVectorsFormatTests.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.lucene.codecs.FilterCodec;
2424
import org.apache.lucene.codecs.KnnVectorsFormat;
2525
import org.apache.lucene.codecs.KnnVectorsReader;
26-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
2726
import org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsReader;
2827
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
2928
import org.apache.lucene.document.Document;
@@ -39,6 +38,7 @@
3938
import org.apache.lucene.search.TopDocs;
4039
import org.apache.lucene.store.Directory;
4140
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
41+
import org.apache.lucene.tests.util.TestUtil;
4242
import org.apache.lucene.util.SameThreadExecutorService;
4343
import org.elasticsearch.common.logging.LogConfigurator;
4444
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
@@ -60,14 +60,11 @@ public class ES816HnswBinaryQuantizedVectorsFormatTests extends BaseKnnVectorsFo
6060
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
6161
}
6262

63+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES816HnswBinaryQuantizedRWVectorsFormat());
64+
6365
@Override
6466
protected Codec getCodec() {
65-
return new Lucene101Codec() {
66-
@Override
67-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
68-
return new ES816HnswBinaryQuantizedRWVectorsFormat();
69-
}
70-
};
67+
return codec;
7168
}
7269

7370
public void testToString() {

server/src/test/java/org/elasticsearch/index/codec/vectors/es818/ES818BinaryQuantizedVectorsFormatTests.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.lucene.codecs.FilterCodec;
2424
import org.apache.lucene.codecs.KnnVectorsFormat;
2525
import org.apache.lucene.codecs.KnnVectorsReader;
26-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
2726
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
2827
import org.apache.lucene.document.Document;
2928
import org.apache.lucene.document.KnnFloatVectorField;
@@ -43,6 +42,7 @@
4342
import org.apache.lucene.search.TotalHits;
4443
import org.apache.lucene.store.Directory;
4544
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
45+
import org.apache.lucene.tests.util.TestUtil;
4646
import org.elasticsearch.common.logging.LogConfigurator;
4747
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
4848
import org.elasticsearch.index.codec.vectors.OptimizedScalarQuantizer;
@@ -64,14 +64,11 @@ public class ES818BinaryQuantizedVectorsFormatTests extends BaseKnnVectorsFormat
6464
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
6565
}
6666

67+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES818BinaryQuantizedVectorsFormat());
68+
6769
@Override
6870
protected Codec getCodec() {
69-
return new Lucene101Codec() {
70-
@Override
71-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
72-
return new ES818BinaryQuantizedVectorsFormat();
73-
}
74-
};
71+
return codec;
7572
}
7673

7774
public void testSearch() throws Exception {

server/src/test/java/org/elasticsearch/index/codec/vectors/es818/ES818HnswBinaryQuantizedVectorsFormatTests.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.lucene.codecs.FilterCodec;
2424
import org.apache.lucene.codecs.KnnVectorsFormat;
2525
import org.apache.lucene.codecs.KnnVectorsReader;
26-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
2726
import org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsReader;
2827
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
2928
import org.apache.lucene.document.Document;
@@ -39,6 +38,7 @@
3938
import org.apache.lucene.search.TopDocs;
4039
import org.apache.lucene.store.Directory;
4140
import org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase;
41+
import org.apache.lucene.tests.util.TestUtil;
4242
import org.apache.lucene.util.SameThreadExecutorService;
4343
import org.elasticsearch.common.logging.LogConfigurator;
4444
import org.elasticsearch.index.codec.vectors.reflect.OffHeapByteSizeUtils;
@@ -60,14 +60,11 @@ public class ES818HnswBinaryQuantizedVectorsFormatTests extends BaseKnnVectorsFo
6060
LogConfigurator.configureESLogging(); // native access requires logging to be initialized
6161
}
6262

63+
static final Codec codec = TestUtil.alwaysKnnVectorsFormat(new ES818HnswBinaryQuantizedVectorsFormat());
64+
6365
@Override
6466
protected Codec getCodec() {
65-
return new Lucene101Codec() {
66-
@Override
67-
public KnnVectorsFormat getKnnVectorsFormatForField(String field) {
68-
return new ES818HnswBinaryQuantizedVectorsFormat();
69-
}
70-
};
67+
return codec;
7168
}
7269

7370
public void testToString() {

server/src/test/java/org/elasticsearch/index/engine/CompletionStatsCacheTests.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
package org.elasticsearch.index.engine;
1010

1111
import org.apache.lucene.codecs.PostingsFormat;
12-
import org.apache.lucene.codecs.lucene101.Lucene101Codec;
1312
import org.apache.lucene.document.Document;
1413
import org.apache.lucene.index.DirectoryReader;
1514
import org.apache.lucene.index.IndexWriter;
1615
import org.apache.lucene.index.IndexWriterConfig;
1716
import org.apache.lucene.search.suggest.document.Completion101PostingsFormat;
1817
import org.apache.lucene.search.suggest.document.SuggestField;
1918
import org.apache.lucene.store.Directory;
19+
import org.apache.lucene.tests.util.TestUtil;
2020
import org.elasticsearch.ElasticsearchException;
2121
import org.elasticsearch.core.IOUtils;
2222
import org.elasticsearch.index.cache.query.TrivialQueryCachingPolicy;
@@ -45,12 +45,7 @@ public void testExceptionsAreNotCached() {
4545
public void testCompletionStatsCache() throws IOException, InterruptedException {
4646
final IndexWriterConfig indexWriterConfig = newIndexWriterConfig();
4747
final PostingsFormat postingsFormat = new Completion101PostingsFormat();
48-
indexWriterConfig.setCodec(new Lucene101Codec() {
49-
@Override
50-
public PostingsFormat getPostingsFormatForField(String field) {
51-
return postingsFormat; // all fields are suggest fields
52-
}
53-
});
48+
indexWriterConfig.setCodec(TestUtil.alwaysPostingsFormat(postingsFormat)); // all fields are suggest fields
5449

5550
try (Directory directory = newDirectory(); IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig)) {
5651

0 commit comments

Comments
 (0)