elasticsearch嵌套不正确的函数生成

8ulbf1ek  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(412)

我正在尝试为函数\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是正常的吗?
提前谢谢。

2nbm6dog

2nbm6dog1#

看起来有个问题 IFieldValueFactorFunction 正在序列化,导致 filter 以及 weight 两次被包括在内 "field_value_factor" 还有里面。我打开了一个请求地址。

相关问题