From 7dc41a3b831a2bdf1b3303a05e306a84d42cae56 Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Mon, 24 Feb 2020 14:28:51 +0000 Subject: [PATCH] Use BoostQuery rather than FunctionScoreQuery for query-time indices_boost (#52272) This is a trivial change, but it should result in a slightly more efficient query boost. --- .../java/org/elasticsearch/search/DefaultSearchContext.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/DefaultSearchContext.java b/server/src/main/java/org/elasticsearch/search/DefaultSearchContext.java index a096364d9ba..ce6fcda788c 100644 --- a/server/src/main/java/org/elasticsearch/search/DefaultSearchContext.java +++ b/server/src/main/java/org/elasticsearch/search/DefaultSearchContext.java @@ -21,6 +21,7 @@ package org.elasticsearch.search; import org.apache.lucene.search.BooleanClause.Occur; import org.apache.lucene.search.BooleanQuery; +import org.apache.lucene.search.BoostQuery; import org.apache.lucene.search.Collector; import org.apache.lucene.search.FieldDoc; import org.apache.lucene.search.MatchNoDocsQuery; @@ -32,8 +33,6 @@ import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.lease.Releasables; import org.elasticsearch.common.lucene.search.Queries; -import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery; -import org.elasticsearch.common.lucene.search.function.WeightFactorFunction; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.index.IndexService; @@ -254,7 +253,7 @@ final class DefaultSearchContext extends SearchContext { parsedQuery(ParsedQuery.parsedMatchAllQuery()); } if (queryBoost() != AbstractQueryBuilder.DEFAULT_BOOST) { - parsedQuery(new ParsedQuery(new FunctionScoreQuery(query(), new WeightFactorFunction(queryBoost)), parsedQuery())); + parsedQuery(new ParsedQuery(new BoostQuery(query(), queryBoost), parsedQuery())); } this.query = buildFilteredQuery(query); if (rewrite) {