Skip to content

Commit d513723

Browse files
Fix logsdb settings provider mapping filters (#136119)
Fixes #136107
1 parent 96ffaf0 commit d513723

File tree

4 files changed

+252
-222
lines changed

4 files changed

+252
-222
lines changed

docs/changelog/136119.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 136119
2+
summary: Fix logsdb settings provider mapping filters
3+
area: Logs
4+
type: bug
5+
issues:
6+
- 136107

x-pack/plugin/logsdb/src/main/java/org/elasticsearch/xpack/logsdb/LogsdbIndexModeSettingsProvider.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,19 @@
4848
import java.util.Objects;
4949
import java.util.Set;
5050
import java.util.function.Supplier;
51+
import java.util.stream.Collectors;
52+
import java.util.stream.Stream;
5153

5254
import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_ROUTING_PATH;
5355
import static org.elasticsearch.xpack.logsdb.LogsDBPlugin.CLUSTER_LOGSDB_ENABLED;
5456

5557
final class LogsdbIndexModeSettingsProvider implements IndexSettingProvider {
5658
private static final Logger LOGGER = LogManager.getLogger(LogsdbIndexModeSettingsProvider.class);
5759
static final String LOGS_PATTERN = "logs-*-*";
58-
private static final Set<String> MAPPING_INCLUDES = Set.of(
59-
"_doc._source.*",
60-
"_doc.properties.host**",
61-
"_doc.properties.resource**",
62-
"_doc.subobjects"
63-
);
60+
private static final Set<String> MAPPING_INCLUDES = Set.of("_source.*", "properties.host**", "properties.resource**", "subobjects")
61+
.stream()
62+
.flatMap(v -> Stream.of(v, "_doc." + v))
63+
.collect(Collectors.toSet());
6464

6565
private final LogsdbLicenseService licenseService;
6666
private final SetOnce<CheckedFunction<IndexMetadata, MapperService, IOException>> mapperServiceFactory = new SetOnce<>();
@@ -305,11 +305,11 @@ MappingHints getMappingHints(
305305
@SuppressWarnings("unchecked")
306306
private boolean checkMappingForPatternText(Map<String, Object> mapping) {
307307
var docMapping = mapping.get("_doc");
308-
if ((docMapping instanceof Map) == false) {
309-
return false;
308+
if (docMapping instanceof Map) {
309+
mapping = (Map<String, Object>) docMapping;
310310
}
311311
boolean[] usesPatternText = { false };
312-
MappingVisitor.visitMapping((Map<String, Object>) docMapping, (field, fieldMapping) -> {
312+
MappingVisitor.visitMapping(mapping, (field, fieldMapping) -> {
313313
if (Objects.equals(fieldMapping.get("type"), PatternTextFieldType.CONTENT_TYPE)) {
314314
usesPatternText[0] = true;
315315
}

0 commit comments

Comments
 (0)