mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 10:25:15 +00:00
Fix boost_mode propagation when the function score query builder is rewritten (#22172)
This change fixes the cloning of the FunctionScoreQueryBuilder when the inner query or functions are rewritten. Fixes #22138
This commit is contained in:
parent
b9600c7891
commit
3005366b13
@ -425,6 +425,7 @@ public class FunctionScoreQueryBuilder extends AbstractQueryBuilder<FunctionScor
|
||||
newQueryBuilder.scoreMode = scoreMode;
|
||||
newQueryBuilder.minScore = minScore;
|
||||
newQueryBuilder.maxBoost = maxBoost;
|
||||
newQueryBuilder.boostMode = boostMode;
|
||||
return newQueryBuilder;
|
||||
}
|
||||
return this;
|
||||
|
@ -654,11 +654,19 @@ public class FunctionScoreQueryBuilderTests extends AbstractQueryTestCase<Functi
|
||||
}
|
||||
|
||||
public void testRewrite() throws IOException {
|
||||
FunctionScoreQueryBuilder functionScoreQueryBuilder = new FunctionScoreQueryBuilder(
|
||||
new WrapperQueryBuilder(new TermQueryBuilder("foo", "bar").toString()));
|
||||
FunctionScoreQueryBuilder functionScoreQueryBuilder =
|
||||
new FunctionScoreQueryBuilder(new WrapperQueryBuilder(new TermQueryBuilder("foo", "bar").toString()))
|
||||
.boostMode(CombineFunction.REPLACE)
|
||||
.scoreMode(FiltersFunctionScoreQuery.ScoreMode.SUM)
|
||||
.setMinScore(1)
|
||||
.maxBoost(100);
|
||||
FunctionScoreQueryBuilder rewrite = (FunctionScoreQueryBuilder) functionScoreQueryBuilder.rewrite(createShardContext());
|
||||
assertNotSame(functionScoreQueryBuilder, rewrite);
|
||||
assertEquals(rewrite.query(), new TermQueryBuilder("foo", "bar"));
|
||||
assertEquals(rewrite.boostMode(), CombineFunction.REPLACE);
|
||||
assertEquals(rewrite.scoreMode(), FiltersFunctionScoreQuery.ScoreMode.SUM);
|
||||
assertEquals(rewrite.getMinScore(), 1f, 0.0001);
|
||||
assertEquals(rewrite.maxBoost(), 100f, 0.0001);
|
||||
}
|
||||
|
||||
public void testRewriteWithFunction() throws IOException {
|
||||
|
Loading…
x
Reference in New Issue
Block a user