diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java index f8677663d72..0c0f21af758 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java @@ -14,6 +14,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import org.hibernate.search.backend.elasticsearch.gson.impl.JsonAccessor; import org.hibernate.search.backend.elasticsearch.lowlevel.query.impl.Queries; import org.hibernate.search.backend.elasticsearch.search.query.ElasticsearchSearchRequestTransformer; import org.hibernate.search.backend.elasticsearch.logging.impl.Log; @@ -40,6 +41,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; public class ElasticsearchSearchQueryBuilder implements SearchQueryBuilder, @@ -47,6 +49,8 @@ public class ElasticsearchSearchQueryBuilder private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); + private static final JsonAccessor REQUEST_SOURCE_ACCESSOR = JsonAccessor.root().property( "_source" ); + private final ElasticsearchWorkBuilderFactory workFactory; private final ElasticsearchSearchResultExtractorFactory searchResultExtractorFactory; private final ElasticsearchWorkOrchestrator queryOrchestrator; @@ -201,6 +205,10 @@ public ElasticsearchSearchQuery build() { payload.add( "aggregations", jsonAggregations ); } + if ( !REQUEST_SOURCE_ACCESSOR.get( payload ).isPresent() ) { + REQUEST_SOURCE_ACCESSOR.set( payload, new JsonPrimitive( Boolean.FALSE ) ); + } + ElasticsearchSearchResultExtractor> searchResultExtractor = searchResultExtractorFactory.createResultExtractor( requestContext,