mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 23:27:25 -04:00
Handle index.mapping.ignore_malformed
in downsampling (#119134)
This commit is contained in:
parent
21fe5a9749
commit
c16bcb64a1
3 changed files with 24 additions and 2 deletions
6
docs/changelog/119134.yaml
Normal file
6
docs/changelog/119134.yaml
Normal file
|
@ -0,0 +1,6 @@
|
|||
pr: 119134
|
||||
summary: Handle `index.mapping.ignore_malformed` in downsampling
|
||||
area: Downsampling
|
||||
type: bug
|
||||
issues:
|
||||
- 119075
|
|
@ -58,6 +58,7 @@ import org.elasticsearch.index.IndexMode;
|
|||
import org.elasticsearch.index.IndexNotFoundException;
|
||||
import org.elasticsearch.index.IndexSettings;
|
||||
import org.elasticsearch.index.mapper.DateFieldMapper;
|
||||
import org.elasticsearch.index.mapper.FieldMapper;
|
||||
import org.elasticsearch.index.mapper.MappedFieldType;
|
||||
import org.elasticsearch.index.mapper.MapperService;
|
||||
import org.elasticsearch.index.mapper.TimeSeriesParams;
|
||||
|
@ -723,6 +724,9 @@ public class TransportDownsampleAction extends AcknowledgedTransportMasterNodeAc
|
|||
if (mapping.get("format") != null) {
|
||||
builder.field("format", mapping.get("format"));
|
||||
}
|
||||
if (mapping.get("ignore_malformed") != null) {
|
||||
builder.field("ignore_malformed", mapping.get("ignore_malformed"));
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new ElasticsearchException("Unable to create timestamp field mapping for field [" + timestampField + "]", e);
|
||||
|
@ -897,6 +901,12 @@ public class TransportDownsampleAction extends AcknowledgedTransportMasterNodeAc
|
|||
sourceIndexMetadata.getSettings().get(MapperService.INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING.getKey())
|
||||
);
|
||||
}
|
||||
if (sourceIndexMetadata.getSettings().hasValue(FieldMapper.IGNORE_MALFORMED_SETTING.getKey())) {
|
||||
builder.put(
|
||||
FieldMapper.IGNORE_MALFORMED_SETTING.getKey(),
|
||||
sourceIndexMetadata.getSettings().get(FieldMapper.IGNORE_MALFORMED_SETTING.getKey())
|
||||
);
|
||||
}
|
||||
|
||||
CreateIndexClusterStateUpdateRequest createIndexClusterStateUpdateRequest = new CreateIndexClusterStateUpdateRequest(
|
||||
"downsample",
|
||||
|
|
|
@ -49,6 +49,7 @@ import org.elasticsearch.index.IndexService;
|
|||
import org.elasticsearch.index.IndexSettings;
|
||||
import org.elasticsearch.index.engine.VersionConflictEngineException;
|
||||
import org.elasticsearch.index.mapper.DateFieldMapper;
|
||||
import org.elasticsearch.index.mapper.FieldMapper;
|
||||
import org.elasticsearch.index.mapper.MapperService;
|
||||
import org.elasticsearch.index.mapper.TimeSeriesIdFieldMapper;
|
||||
import org.elasticsearch.index.mapper.TimeSeriesParams;
|
||||
|
@ -201,14 +202,19 @@ public class DownsampleActionSingleNodeTests extends ESSingleNodeTestCase {
|
|||
IndexSettings.TIME_SERIES_START_TIME.getKey(),
|
||||
DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.formatMillis(Instant.ofEpochMilli(startTime).toEpochMilli())
|
||||
)
|
||||
.put(IndexSettings.TIME_SERIES_END_TIME.getKey(), "2106-01-08T23:40:53.384Z");
|
||||
.put(IndexSettings.TIME_SERIES_END_TIME.getKey(), "2106-01-08T23:40:53.384Z")
|
||||
.put(FieldMapper.IGNORE_MALFORMED_SETTING.getKey(), randomBoolean());
|
||||
|
||||
if (randomBoolean()) {
|
||||
settings.put(IndexMetadata.SETTING_INDEX_HIDDEN, randomBoolean());
|
||||
}
|
||||
|
||||
XContentBuilder mapping = jsonBuilder().startObject().startObject("_doc").startObject("properties");
|
||||
mapping.startObject(FIELD_TIMESTAMP).field("type", "date").endObject();
|
||||
mapping.startObject(FIELD_TIMESTAMP).field("type", "date");
|
||||
if (settings.get(FieldMapper.IGNORE_MALFORMED_SETTING.getKey()).equals("true")) {
|
||||
mapping.field("ignore_malformed", false);
|
||||
}
|
||||
mapping.endObject();
|
||||
|
||||
// Dimensions
|
||||
mapping.startObject(FIELD_DIMENSION_1).field("type", "keyword").field("time_series_dimension", true).endObject();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue