【发布时间】:2021-01-13 01:23:39
【问题描述】:
下面是我的映射
{
"defaultBoostValue":1.01,
"boostDetails": [
{
"Type": "Type1",
"value": 1.0001
},
{
"Type": "Type2",
"value": 1.002
},
{
"Type": "Type3",
"value": 1.0005
}
]
}
我想根据 type 应用 boost 类型,所以如果 boostType 是 Type3 那么 boostFactor 应该是 1.0005,如果它没有那个 boostType,它应该应用 "defaultBoostValue" 作为 boost 以下是我尝试过的查询
{
"query": {
"function_score": {
"boost_mode": "multiply",
"functions": [
{
"filter": {
"match": {
"boostDetails.Type": "Type1"
}
},
"field_value_factor": {
"field": "boostDetails.value",
"factor": 1,
"missing": 1
}
}
]
}
}
}
它没有按预期工作,因为 boostDetails 是对象数组,我们如何在这种情况下应用过滤器
【问题讨论】:
标签: elasticsearch kibana elasticsearch-7