我正在尝试为函数\u score search query构建以下函数:
{
"filter": {
"range": {
"availabilityAverage": {
"gt": 0
}
}
},
"field_value_factor": {
"field": "availabilityAverage",
"factor": 1,
"modifier": "log1p"
},
"weight": 100
}
这是我当前的.net代码
.FieldValueFactor(ff => ff
.Field(fff => fff.StandardPriceMin)
.Factor(2)
.Modifier(FieldValueFactorModifier.Log1P)
.Weight(100)
.Filter(faf => faf
.Range(r => r
.Field(rf => rf.AvailabilityAverage)
.GreaterThan(0.0)
)
)
)
但是,这是嵌套查询的结果:
{
"filter": {
"range": {
"availabilityAverage": {
"gt": 0.0
}
}
},
"field_value_factor": {
"factor": 2.0,
"field": "standardPriceMin",
"modifier": "log1p",
"filter": {
"range": {
"availabilityAverage": {
"gt": 0.0
}
}
},
"weight": 100.0
},
"weight": 100.0
}
它在字段\u value \u factor的外部正确地添加了filter和weight,但在内部也包含了filter和weight作为子元素。其他情况则不是这样,例如格式完全相同的randomscore(),但仅使用字段\值\因子。
我尝试了几种不同的组合,但都没有达到预期的效果。嵌套生成这个json是正常的吗?
提前谢谢。
1条答案
按热度按时间2nbm6dog1#
看起来有个问题
IFieldValueFactorFunction
正在序列化,导致filter
以及weight
两次被包括在内"field_value_factor"
还有里面。我打开了一个请求地址。