# Multimatch and multiple function scores

**URL:** <https://discuss.elastic.co/t/multimatch-and-multiple-function-scores/127770>\
**Category:** Elasticsearch\
**Created:** [April 12, 2018, 8:42am UTC](https://discuss.elastic.co/t/multimatch-and-multiple-function-scores/127770 "2018-04-12T08:42:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Arth](https://avatars.discourse-cdn.com/v4/letter/a/ba8739/32.png) [@Arth](https://discuss.elastic.co/u/Arth)\
**Post date:** [April 12, 2018, 8:42am UTC](https://discuss.elastic.co/t/multimatch-and-multiple-function-scores/127770/1 "2018-04-12T08:42:35Z")

</div>

Hi,

I'd like to increase/decrease the scores of the results from a multimatch query with several function scores.

This following code works :

FunctionScoreQueryBuilder functionScoreQuery = QueryBuilders.functionScoreQuery(  
multiMatchQuery,  
ScoreFunctionBuilders.gaussDecayFunction("creationdate", "now", "60d", "30d", 0.5)  
)  
.scoreMode(ScoreMode.MULTIPLY)  
.boostMode(CombineFunction.SUM);

But I have a problem using FilterFunctionBuilder[], I lose the scores of the multi match :

FilterFunctionBuilder[] filterFunctions = {  
new FunctionScoreQueryBuilder.FilterFunctionBuilder(  
multiMatchQuery,  
ScoreFunctionBuilders.gaussDecayFunction("creationdate", "now", "60d", "30d", 0.5)  
)  
};  
FunctionScoreQueryBuilder functionScoreQuery = QueryBuilders.functionScoreQuery(filterFunctions)  
.scoreMode(ScoreMode.MULTIPLY)  
.boostMode(CombineFunction.SUM);

What's wrong please ? Should I use "should" instead of "function score" ?

Thank you

---

<div class="post-metadata">

**Author:** ![Arth](https://avatars.discourse-cdn.com/v4/letter/a/ba8739/32.png) [@Arth](https://discuss.elastic.co/u/Arth)\
**Post date:** [April 12, 2018, 2:14pm UTC](https://discuss.elastic.co/t/multimatch-and-multiple-function-scores/127770/2 "2018-04-12T14:14:09Z")

</div>

Ok the solution is :

FilterFunctionBuilder[] filterFunctions = {  
new FunctionScoreQueryBuilder.FilterFunctionBuilder(  
ScoreFunctionBuilders.gaussDecayFunction("creationdate", "now", "60d", "30d", 0.5)  
)  
};

FunctionScoreQueryBuilder functionScoreQuery = QueryBuilders.functionScoreQuery(  
multiMatchQuery,  
filterFunctions  
)

Sorry for the confusion

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 10, 2018, 2:20pm UTC](https://discuss.elastic.co/t/multimatch-and-multiple-function-scores/127770/3 "2018-05-10T14:20:58Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
