Skip to content

Commit

Permalink
HSEARCH-3861 Disable returning the _source in search queries when not…
Browse files Browse the repository at this point in the history
… strictly necessary
  • Loading branch information
yrodiere committed Mar 12, 2020
1 parent 2fed26a commit c9eacfb
Showing 1 changed file with 8 additions and 0 deletions.
Expand Up @@ -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;
Expand All @@ -40,13 +41,16 @@
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;

public class ElasticsearchSearchQueryBuilder<H>
implements SearchQueryBuilder<H, ElasticsearchSearchQueryElementCollector>,
ElasticsearchSearchQueryElementCollector {

private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() );

private static final JsonAccessor<JsonElement> REQUEST_SOURCE_ACCESSOR = JsonAccessor.root().property( "_source" );

private final ElasticsearchWorkBuilderFactory workFactory;
private final ElasticsearchSearchResultExtractorFactory searchResultExtractorFactory;
private final ElasticsearchWorkOrchestrator queryOrchestrator;
Expand Down Expand Up @@ -201,6 +205,10 @@ public ElasticsearchSearchQuery<H> build() {
payload.add( "aggregations", jsonAggregations );
}

if ( !REQUEST_SOURCE_ACCESSOR.get( payload ).isPresent() ) {
REQUEST_SOURCE_ACCESSOR.set( payload, new JsonPrimitive( Boolean.FALSE ) );
}

ElasticsearchSearchResultExtractor<ElasticsearchLoadableSearchResult<H>> searchResultExtractor =
searchResultExtractorFactory.createResultExtractor(
requestContext,
Expand Down

0 comments on commit c9eacfb

Please sign in to comment.