From c966143516a37c227b23340644a44721d83624b5 Mon Sep 17 00:00:00 2001 From: Andrei Dan Date: Tue, 24 Sep 2024 16:27:09 +0300 Subject: [PATCH] Register the _ts_routing_hash value format as named writeable (#113452) In #113373 we added a yaml test that can exercise the path of parsing `_ts_routing_hash` values however, the doc value format was not already registered in the `NamedWriteableRegistry`. This makes the `TimeSeriesRoutingHashFieldType` doc value format `NamedWriteable` available in the `NamedWriteableRegistry` (cherry picked from commit d07d1674309d898fcb1339e13fb3db3d9946830f) Signed-off-by: Andrei Dan --- .../index/mapper/TimeSeriesRoutingHashFieldMapper.java | 4 +++- .../src/main/java/org/elasticsearch/search/SearchModule.java | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/index/mapper/TimeSeriesRoutingHashFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/TimeSeriesRoutingHashFieldMapper.java index 60f792068300b..24c0a9760893b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/TimeSeriesRoutingHashFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/TimeSeriesRoutingHashFieldMapper.java @@ -48,10 +48,12 @@ public class TimeSeriesRoutingHashFieldMapper extends MetadataFieldMapper { public static final TypeParser PARSER = new FixedTypeParser(c -> c.getIndexSettings().getMode().timeSeriesRoutingHashFieldMapper()); static final NodeFeature TS_ROUTING_HASH_FIELD_PARSES_BYTES_REF = new NodeFeature("tsdb.ts_routing_hash_doc_value_parse_byte_ref"); + public static DocValueFormat TS_ROUTING_HASH_DOC_VALUE_FORMAT = TimeSeriesRoutingHashFieldType.DOC_VALUE_FORMAT; + static final class TimeSeriesRoutingHashFieldType extends MappedFieldType { private static final TimeSeriesRoutingHashFieldType INSTANCE = new TimeSeriesRoutingHashFieldType(); - private static final DocValueFormat DOC_VALUE_FORMAT = new DocValueFormat() { + static final DocValueFormat DOC_VALUE_FORMAT = new DocValueFormat() { @Override public String getWriteableName() { diff --git a/server/src/main/java/org/elasticsearch/search/SearchModule.java b/server/src/main/java/org/elasticsearch/search/SearchModule.java index b703b05371cce..4afcc57b7b15a 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/server/src/main/java/org/elasticsearch/search/SearchModule.java @@ -276,6 +276,7 @@ import static java.util.Collections.unmodifiableMap; import static java.util.Objects.requireNonNull; +import static org.elasticsearch.index.mapper.TimeSeriesRoutingHashFieldMapper.TS_ROUTING_HASH_DOC_VALUE_FORMAT; /** * Sets up things that can be done at search time like queries, aggregations, and suggesters. @@ -1023,6 +1024,7 @@ private void registerValueFormats() { registerValueFormat(DocValueFormat.BINARY.getWriteableName(), in -> DocValueFormat.BINARY); registerValueFormat(DocValueFormat.UNSIGNED_LONG_SHIFTED.getWriteableName(), in -> DocValueFormat.UNSIGNED_LONG_SHIFTED); registerValueFormat(DocValueFormat.TIME_SERIES_ID.getWriteableName(), in -> DocValueFormat.TIME_SERIES_ID); + registerValueFormat(TS_ROUTING_HASH_DOC_VALUE_FORMAT.getWriteableName(), in -> TS_ROUTING_HASH_DOC_VALUE_FORMAT); } /**