#elasticsearch #nest
#эластичный поиск #гнездо #elasticsearch
Вопрос:
в следующем запросе я хочу иметь возможность увеличить фильтр на число. в приведенном ниже запросе это выражается как «boost_factor»: 100. это прекрасно работает в elasticsearch, но, похоже, в Nest нет эквивалента. есть идеи, как это сконструировать?
{
"query": {
"function_score": {
"functions": [
{
"script_score": {
"script": "_score * doc['somevalue'].value"
}
},
{
"filter": {
"query":{
"bool": {
"should": [
{
"match": {
"title": {
"type": "phrase_prefix",
"query": "some query"
}
}
}
]
}
}
},
"boost_factor": 100
}
],
"query": {
...
}
Ответ №1:
я действительно нашел ответ — разместите здесь, если кто-то хочет знать. это связано с различным использованием лямбд с несколькими функциями.
s.Query(q => q
.FunctionScore(cfs => cfs
.Functions(
fn => fn.ScriptScore(sc => sc.Script("_score * doc['somevalue'].value")),
fn => fn
.BoostFactor(100)
.Filter(SetFunctionFilters(searchDescriptor)
)
)
.Query(qy => qy
...)