|
@@ -213,6 +213,8 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
|
|
|
private Map<String, Object> runtimeMappings = emptyMap();
|
|
|
|
|
|
+ private boolean skipInnerHits = false;
|
|
|
+
|
|
|
/**
|
|
|
* Constructs a new search source builder.
|
|
|
*/
|
|
@@ -289,6 +291,11 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_8_0)) {
|
|
|
rankBuilder = in.readOptionalNamedWriteable(RankBuilder.class);
|
|
|
}
|
|
|
+ if (in.getTransportVersion().onOrAfter(TransportVersions.SKIP_INNER_HITS_SEARCH_SOURCE)) {
|
|
|
+ skipInnerHits = in.readBoolean();
|
|
|
+ } else {
|
|
|
+ skipInnerHits = false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -378,6 +385,9 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
} else if (rankBuilder != null) {
|
|
|
throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion().toReleaseVersion() + "]");
|
|
|
}
|
|
|
+ if (out.getTransportVersion().onOrAfter(TransportVersions.SKIP_INNER_HITS_SEARCH_SOURCE)) {
|
|
|
+ out.writeBoolean(skipInnerHits);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1279,6 +1289,7 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
rewrittenBuilder.collapse = collapse;
|
|
|
rewrittenBuilder.pointInTimeBuilder = pointInTimeBuilder;
|
|
|
rewrittenBuilder.runtimeMappings = runtimeMappings;
|
|
|
+ rewrittenBuilder.skipInnerHits = skipInnerHits;
|
|
|
return rewrittenBuilder;
|
|
|
}
|
|
|
|
|
@@ -1855,6 +1866,9 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
if (false == runtimeMappings.isEmpty()) {
|
|
|
builder.field(RUNTIME_MAPPINGS_FIELD.getPreferredName(), runtimeMappings);
|
|
|
}
|
|
|
+ if (skipInnerHits) {
|
|
|
+ builder.field("skipInnerHits", true);
|
|
|
+ }
|
|
|
|
|
|
return builder;
|
|
|
}
|
|
@@ -1867,6 +1881,15 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
return builder;
|
|
|
}
|
|
|
|
|
|
+ public SearchSourceBuilder skipInnerHits(boolean skipInnerHits) {
|
|
|
+ this.skipInnerHits = skipInnerHits;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean skipInnerHits() {
|
|
|
+ return this.skipInnerHits;
|
|
|
+ }
|
|
|
+
|
|
|
public static class IndexBoost implements Writeable, ToXContentObject {
|
|
|
private final String index;
|
|
|
private final float boost;
|
|
@@ -2121,7 +2144,8 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
collapse,
|
|
|
trackTotalHitsUpTo,
|
|
|
pointInTimeBuilder,
|
|
|
- runtimeMappings
|
|
|
+ runtimeMappings,
|
|
|
+ skipInnerHits
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -2166,7 +2190,8 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R
|
|
|
&& Objects.equals(collapse, other.collapse)
|
|
|
&& Objects.equals(trackTotalHitsUpTo, other.trackTotalHitsUpTo)
|
|
|
&& Objects.equals(pointInTimeBuilder, other.pointInTimeBuilder)
|
|
|
- && Objects.equals(runtimeMappings, other.runtimeMappings);
|
|
|
+ && Objects.equals(runtimeMappings, other.runtimeMappings)
|
|
|
+ && Objects.equals(skipInnerHits, other.skipInnerHits);
|
|
|
}
|
|
|
|
|
|
@Override
|