From 9ca35bdb8cc70aae377d1d8a6e75ed30e6233b04 Mon Sep 17 00:00:00 2001 From: tlrx Date: Mon, 23 Mar 2026 14:12:05 +0100 Subject: [PATCH 1/3] Use XPerFieldDocValuesFormat in AbstractTSDBSyntheticIdCodec --- .../tsdb/AbstractTSDBSyntheticIdCodec.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/codec/tsdb/AbstractTSDBSyntheticIdCodec.java b/server/src/main/java/org/elasticsearch/index/codec/tsdb/AbstractTSDBSyntheticIdCodec.java index 33c2a57afff28..fbab71afc5790 100644 --- a/server/src/main/java/org/elasticsearch/index/codec/tsdb/AbstractTSDBSyntheticIdCodec.java +++ b/server/src/main/java/org/elasticsearch/index/codec/tsdb/AbstractTSDBSyntheticIdCodec.java @@ -9,15 +9,17 @@ package org.elasticsearch.index.codec.tsdb; -import org.apache.lucene.codecs.Codec; +import org.apache.lucene.codecs.DocValuesFormat; import org.apache.lucene.codecs.FieldInfosFormat; import org.apache.lucene.codecs.FilterCodec; import org.apache.lucene.codecs.StoredFieldsFormat; +import org.apache.lucene.codecs.lucene104.Lucene104Codec; import org.apache.lucene.index.FieldInfos; import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.SegmentInfo; import org.apache.lucene.store.Directory; import org.apache.lucene.store.IOContext; +import org.elasticsearch.index.codec.perfield.XPerFieldDocValuesFormat; import org.elasticsearch.index.codec.storedfields.TSDBStoredFieldsFormat; import org.elasticsearch.index.mapper.SyntheticIdField; @@ -50,11 +52,18 @@ abstract class AbstractTSDBSyntheticIdCodec extends FilterCodec { private final TSDBStoredFieldsFormat storedFieldsFormat; private final ValidatingFieldInfosFormat fieldInfosFormat; + private final DocValuesFormat docValuesFormat; - AbstractTSDBSyntheticIdCodec(String name, Codec delegate) { + AbstractTSDBSyntheticIdCodec(String name, Lucene104Codec delegate) { super(name, delegate); this.storedFieldsFormat = new TSDBStoredFieldsFormat(delegate.storedFieldsFormat()); this.fieldInfosFormat = new ValidatingFieldInfosFormat(delegate.fieldInfosFormat()); + this.docValuesFormat = new XPerFieldDocValuesFormat() { + @Override + public DocValuesFormat getDocValuesFormatForField(String field) { + return delegate.getDocValuesFormatForField(field); + } + }; } @Override @@ -62,6 +71,11 @@ public StoredFieldsFormat storedFieldsFormat() { return storedFieldsFormat; } + @Override + public DocValuesFormat docValuesFormat() { + return docValuesFormat; + } + @Override public final FieldInfosFormat fieldInfosFormat() { return fieldInfosFormat; From 7211de68267d49eae2cdbe83b8424b2d7e7562b2 Mon Sep 17 00:00:00 2001 From: tlrx Date: Tue, 24 Mar 2026 10:01:39 +0100 Subject: [PATCH 2/3] adjust unit test --- .../codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java b/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java index f4e2d70bc599f..c1ddafc2b64fb 100644 --- a/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java +++ b/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java @@ -24,6 +24,7 @@ import org.elasticsearch.index.codec.CodecService; import org.elasticsearch.index.codec.Elasticsearch93Lucene104Codec; import org.elasticsearch.index.codec.LegacyPerFieldMapperCodec; +import org.elasticsearch.index.codec.perfield.XPerFieldDocValuesFormat; import org.elasticsearch.index.codec.tsdb.ES93TSDBDefaultCompressionLucene103Codec; import org.elasticsearch.index.codec.tsdb.PartitionedDocValues; import org.elasticsearch.index.engine.Engine; @@ -169,8 +170,8 @@ private void assertDocValuesFormat(String indexName, DocValuesFormat expectedFor if (deduplicateFieldInfosCodec.delegate() instanceof LegacyPerFieldMapperCodec legacyPerFieldMapperCodec) { docValuesFormatProvider = legacyPerFieldMapperCodec::getDocValuesFormatForField; } else if (deduplicateFieldInfosCodec.delegate() instanceof ES93TSDBDefaultCompressionLucene103Codec es93TSDB103Codec) { - assertThat(es93TSDB103Codec.docValuesFormat(), instanceOf(PerFieldDocValuesFormat.class)); - docValuesFormatProvider = (field) -> ((PerFieldDocValuesFormat) es93TSDB103Codec.docValuesFormat()) + assertThat(es93TSDB103Codec.docValuesFormat(), instanceOf(XPerFieldDocValuesFormat.class)); + docValuesFormatProvider = (field) -> ((XPerFieldDocValuesFormat) es93TSDB103Codec.docValuesFormat()) .getDocValuesFormatForField(field); } else { fail("Unexpected codec type: " + codec.getClass().getName()); From 2a941de00fde4b3768ccb1e52ccbae2d786625fc Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Tue, 24 Mar 2026 09:09:22 +0000 Subject: [PATCH 3/3] [CI] Auto commit changes from spotless --- .../codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java b/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java index c1ddafc2b64fb..09514b3a44f4c 100644 --- a/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java +++ b/server/src/test/java/org/elasticsearch/index/codec/tsdb/es819/TSDBDocValuesFormatSingleNodeTests.java @@ -10,7 +10,6 @@ package org.elasticsearch.index.codec.tsdb.es819; import org.apache.lucene.codecs.DocValuesFormat; -import org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat; import org.apache.lucene.index.DocValuesType; import org.apache.lucene.index.FieldInfo; import org.apache.lucene.index.LeafReaderContext;