В документе Elasticsearch опишите о функции Score Query покажите код, как показано ниже
GET /_search
{
"query": {
"function_score": {
"query": { "match_all": {} },
"boost": "5",
"functions": [
{
"filter": { "match": { "test": "bar" } },
"random_score": {},
"weight": 23
},
{
"filter": { "match": { "test": "cat" } },
"weight": 42
}
],
"max_boost": 42,
"score_mode": "max",
"boost_mode": "multiply",
"min_score" : 42
}
}
}
Я пишу этот запрос в синтаксис инициализатора объекта
var searchRequest = new SearchRequest<ProductType>
{
Query = new FunctionScoreQuery()
{
Query = new MatchAllQuery {},
Boost = 5,
Functions = new List<IScoreFunction>
{
Filters...?
},
MaxBoost = 42,
ScoreMode = FunctionScoreMode.Max,
BoostMode = FunctionBoostMode.Max,
MinScore = 42
}
};
Как создавать фильтры в функциях?
Интерфейс IScoreFunction
допускает только ExponentialDecayFunction
, GaussDateDecayFunction
, LinearGeoDecayFunction
, FieldValueFactorFunction
, RandomScoreFunction
, WeightFunction
, ScriptScoreFunction