Skip to content

Commit 2a4ca02

Browse files
committed
Exclude semantic text subfields from field caps
1 parent c633345 commit 2a4ca02

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesFetcher.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.action.fieldcaps;
1111

12+
import org.elasticsearch.cluster.metadata.InferenceFieldMetadata;
1213
import org.elasticsearch.cluster.metadata.MappingMetadata;
1314
import org.elasticsearch.core.Booleans;
1415
import org.elasticsearch.core.Nullable;
@@ -30,6 +31,7 @@
3031
import org.elasticsearch.tasks.CancellableTask;
3132

3233
import java.io.IOException;
34+
import java.util.Collection;
3335
import java.util.Collections;
3436
import java.util.HashMap;
3537
import java.util.Map;
@@ -256,6 +258,13 @@ private static Predicate<MappedFieldType> buildFilter(String[] filters, String[]
256258
Set<String> acceptedTypes = Set.of(fieldTypes);
257259
fcf = ft -> acceptedTypes.contains(ft.familyTypeName());
258260
}
261+
262+
Collection<InferenceFieldMetadata> inferenceFields = context.getMappingLookup().inferenceFields().values();
263+
for (InferenceFieldMetadata inferenceField : inferenceFields) {
264+
Predicate<MappedFieldType> next = ft -> ft.name().startsWith(inferenceField.getName() + ".inference") == false;
265+
fcf = fcf == null ? next : fcf.and(next);
266+
}
267+
259268
for (String filter : filters) {
260269
if ("parent".equals(filter) || "-parent".equals(filter)) {
261270
continue;
@@ -269,6 +278,7 @@ private static Predicate<MappedFieldType> buildFilter(String[] filters, String[]
269278
};
270279
fcf = fcf == null ? next : fcf.and(next);
271280
}
281+
272282
return fcf;
273283
}
274284

0 commit comments

Comments
 (0)