diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/RequestConverter.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/RequestConverter.java index 1ec3fcbc6..fa4019640 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/RequestConverter.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/RequestConverter.java @@ -1426,6 +1426,7 @@ private void prepareSearchRequest(Query query, @Nullable String routing, @Nu .searchType(searchType) // .timeout(timeStringMs(query.getTimeout())) // .requestCache(query.getRequestCache()) // + .includeNamedQueriesScore(query.getIncludeNamedQueriesScore()) // ; var pointInTime = query.getPointInTime(); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQuery.java b/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQuery.java index 611e59f61..1137f5bb2 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQuery.java @@ -81,6 +81,7 @@ public class BaseQuery implements Query { protected List idsWithRouting = Collections.emptyList(); protected List runtimeFields = new ArrayList<>(); @Nullable protected PointInTime pointInTime; + @Nullable protected Boolean includeNamedQueriesScore; private boolean queryIsUpdatedByConverter = false; @Nullable private Integer reactiveBatchSize = null; @Nullable private Boolean allowNoIndices = null; @@ -123,6 +124,7 @@ public > BaseQuery(BaseQue this.docValueFields = builder.getDocValueFields(); this.scriptedFields = builder.getScriptedFields(); this.runtimeFields = builder.getRuntimeFields(); + this.includeNamedQueriesScore = builder.getIncludeNamedQueriesScore(); } /** @@ -455,6 +457,11 @@ public void setRequestCache(@Nullable Boolean value) { this.requestCache = value; } + @Override + public void setIncludeNamedQueriesScore(@Nullable Boolean value) { + this.includeNamedQueriesScore = value; + } + @Override @Nullable public Boolean getRequestCache() { @@ -480,6 +487,11 @@ public List getIndicesBoost() { return indicesBoost; } + @Override + public @Nullable Boolean getIncludeNamedQueriesScore() { + return this.includeNamedQueriesScore; + } + /** * @since 5.0 */ diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQueryBuilder.java b/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQueryBuilder.java index 7aa35b6ad..77cb62f28 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQueryBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/BaseQueryBuilder.java @@ -71,6 +71,7 @@ public abstract class BaseQueryBuilder docValueFields = new ArrayList<>(); private final List scriptedFields = new ArrayList<>(); + @Nullable private Boolean includeNamedQueryScore; @Nullable public Sort getSort() { @@ -177,6 +178,11 @@ public Boolean getRequestCache() { return requestCache; } + @Nullable + public Boolean getIncludeNamedQueriesScore(){ + return includeNamedQueryScore; + } + public List getIdsWithRouting() { return idsWithRouting; } @@ -381,6 +387,11 @@ public SELF withRequestCache(@Nullable Boolean requestCache) { return self(); } + public SELF withIncludeNamedQueryScore (@Nullable Boolean namedQueryScore) { + this.includeNamedQueryScore = namedQueryScore; + return self(); + } + /** * Set Ids with routing values for a multi-get request run with this query. Not used in any other searches. * diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/Query.java b/src/main/java/org/springframework/data/elasticsearch/core/query/Query.java index d53b3a380..c929b94de 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/Query.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/Query.java @@ -491,6 +491,20 @@ default Integer getReactiveBatchSize() { */ public Integer getRequestSize(); + /** + * Sets the include_named_queries_score value for the query. + * If true, the response includes the score contribution from any named queries. + * + * @param value new value + */ + void setIncludeNamedQueriesScore(@Nullable Boolean value); + + /** + * @return the include_named_queries_score value for this query. + */ + @Nullable + Boolean getIncludeNamedQueriesScore(); + /** * @since 4.3 */