Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -50,18 +52,30 @@
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) {
Comment thread
burqen marked this conversation as resolved.
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
public StoredFieldsFormat storedFieldsFormat() {
return storedFieldsFormat;
}

@Override
public DocValuesFormat docValuesFormat() {
return docValuesFormat;
}

@Override
public final FieldInfosFormat fieldInfosFormat() {
return fieldInfosFormat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -24,6 +23,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;
Expand Down Expand Up @@ -169,8 +169,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());
Expand Down
Loading