Skip to content

Commit 5c2a1b9

Browse files
fix: refactor feature selection logic
1 parent c56ec16 commit 5c2a1b9

File tree

1 file changed

+28
-40
lines changed

1 file changed

+28
-40
lines changed

server/src/main/java/org/elasticsearch/index/mapper/MapperFeatures.java

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.features.NodeFeature;
1414
import org.elasticsearch.index.IndexSettings;
1515

16+
import java.util.HashSet;
1617
import java.util.Set;
1718

1819
/**
@@ -32,52 +33,39 @@ public class MapperFeatures implements FeatureSpecification {
3233
public static final NodeFeature SPARSE_VECTOR_STORE_SUPPORT = new NodeFeature("mapper.sparse_vector.store_support");
3334
public static final NodeFeature SORT_FIELDS_CHECK_FOR_NESTED_OBJECT_FIX = new NodeFeature("mapper.nested.sorting_fields_check_fix");
3435
public static final NodeFeature DYNAMIC_HANDLING_IN_COPY_TO = new NodeFeature("mapper.copy_to.dynamic_handling");
36+
3537
public static final NodeFeature USE_SYNTHETIC_SOURCE_FOR_RECOVERY_BY_DEFAULT = new NodeFeature(
3638
"index.recovery.synthetic_source_default"
3739
);
3840

41+
private static final Set<NodeFeature> DEFAULT_TEST_FEATURES = Set.of(
42+
RangeFieldMapper.DATE_RANGE_INDEXING_FIX,
43+
IgnoredSourceFieldMapper.DONT_EXPAND_DOTS_IN_IGNORED_SOURCE,
44+
SourceFieldMapper.REMOVE_SYNTHETIC_SOURCE_ONLY_VALIDATION,
45+
SourceFieldMapper.SOURCE_MODE_FROM_INDEX_SETTING,
46+
IgnoredSourceFieldMapper.IGNORED_SOURCE_AS_TOP_LEVEL_METADATA_ARRAY_FIELD,
47+
IgnoredSourceFieldMapper.ALWAYS_STORE_OBJECT_ARRAYS_IN_NESTED_OBJECTS,
48+
MapperService.LOGSDB_DEFAULT_IGNORE_DYNAMIC_BEYOND_LIMIT,
49+
DocumentParser.FIX_PARSING_SUBOBJECTS_FALSE_DYNAMIC_FALSE,
50+
CONSTANT_KEYWORD_SYNTHETIC_SOURCE_WRITE_FIX,
51+
META_FETCH_FIELDS_ERROR_CODE_CHANGED,
52+
SPARSE_VECTOR_STORE_SUPPORT,
53+
COUNTED_KEYWORD_SYNTHETIC_SOURCE_NATIVE_SUPPORT,
54+
SORT_FIELDS_CHECK_FOR_NESTED_OBJECT_FIX,
55+
DYNAMIC_HANDLING_IN_COPY_TO,
56+
SourceFieldMapper.SYNTHETIC_RECOVERY_SOURCE,
57+
ObjectMapper.SUBOBJECTS_FALSE_MAPPING_UPDATE_FIX
58+
);
59+
60+
private static final Set<NodeFeature> ADDITIONAL_TEST_FEATURES = Set.of(USE_SYNTHETIC_SOURCE_FOR_RECOVERY_BY_DEFAULT);
61+
3962
@Override
4063
public Set<NodeFeature> getTestFeatures() {
41-
if (IndexSettings.RECOVERY_USE_SYNTHETIC_SOURCE.isEnabled() == false) {
42-
// NOTE: release build node features
43-
return Set.of(
44-
RangeFieldMapper.DATE_RANGE_INDEXING_FIX,
45-
IgnoredSourceFieldMapper.DONT_EXPAND_DOTS_IN_IGNORED_SOURCE,
46-
SourceFieldMapper.REMOVE_SYNTHETIC_SOURCE_ONLY_VALIDATION,
47-
SourceFieldMapper.SOURCE_MODE_FROM_INDEX_SETTING,
48-
IgnoredSourceFieldMapper.IGNORED_SOURCE_AS_TOP_LEVEL_METADATA_ARRAY_FIELD,
49-
IgnoredSourceFieldMapper.ALWAYS_STORE_OBJECT_ARRAYS_IN_NESTED_OBJECTS,
50-
MapperService.LOGSDB_DEFAULT_IGNORE_DYNAMIC_BEYOND_LIMIT,
51-
DocumentParser.FIX_PARSING_SUBOBJECTS_FALSE_DYNAMIC_FALSE,
52-
CONSTANT_KEYWORD_SYNTHETIC_SOURCE_WRITE_FIX,
53-
META_FETCH_FIELDS_ERROR_CODE_CHANGED,
54-
SPARSE_VECTOR_STORE_SUPPORT,
55-
COUNTED_KEYWORD_SYNTHETIC_SOURCE_NATIVE_SUPPORT,
56-
SORT_FIELDS_CHECK_FOR_NESTED_OBJECT_FIX,
57-
DYNAMIC_HANDLING_IN_COPY_TO,
58-
SourceFieldMapper.SYNTHETIC_RECOVERY_SOURCE,
59-
ObjectMapper.SUBOBJECTS_FALSE_MAPPING_UPDATE_FIX
60-
);
64+
if (IndexSettings.RECOVERY_USE_SYNTHETIC_SOURCE.isEnabled()) {
65+
final Set<NodeFeature> features = new HashSet<>(DEFAULT_TEST_FEATURES);
66+
features.addAll(ADDITIONAL_TEST_FEATURES);
67+
return features;
6168
}
62-
// NOTE: snapshot build node features
63-
return Set.of(
64-
RangeFieldMapper.DATE_RANGE_INDEXING_FIX,
65-
IgnoredSourceFieldMapper.DONT_EXPAND_DOTS_IN_IGNORED_SOURCE,
66-
SourceFieldMapper.REMOVE_SYNTHETIC_SOURCE_ONLY_VALIDATION,
67-
SourceFieldMapper.SOURCE_MODE_FROM_INDEX_SETTING,
68-
IgnoredSourceFieldMapper.IGNORED_SOURCE_AS_TOP_LEVEL_METADATA_ARRAY_FIELD,
69-
IgnoredSourceFieldMapper.ALWAYS_STORE_OBJECT_ARRAYS_IN_NESTED_OBJECTS,
70-
MapperService.LOGSDB_DEFAULT_IGNORE_DYNAMIC_BEYOND_LIMIT,
71-
DocumentParser.FIX_PARSING_SUBOBJECTS_FALSE_DYNAMIC_FALSE,
72-
CONSTANT_KEYWORD_SYNTHETIC_SOURCE_WRITE_FIX,
73-
META_FETCH_FIELDS_ERROR_CODE_CHANGED,
74-
SPARSE_VECTOR_STORE_SUPPORT,
75-
COUNTED_KEYWORD_SYNTHETIC_SOURCE_NATIVE_SUPPORT,
76-
SORT_FIELDS_CHECK_FOR_NESTED_OBJECT_FIX,
77-
DYNAMIC_HANDLING_IN_COPY_TO,
78-
SourceFieldMapper.SYNTHETIC_RECOVERY_SOURCE,
79-
ObjectMapper.SUBOBJECTS_FALSE_MAPPING_UPDATE_FIX,
80-
USE_SYNTHETIC_SOURCE_FOR_RECOVERY_BY_DEFAULT // NOTE: only for snapshot builds
81-
);
69+
return DEFAULT_TEST_FEATURES;
8270
}
8371
}

0 commit comments

Comments
 (0)