0

让我先说一下我是 ElasticSearch 和 NEST 的新手,可能做错了什么。这是使用 NEST 7.6.2。
我正在按照文档使用对象初始化器语法创建一个field_value_factor包含过滤器和权重的得分函数,即:

new FieldValueFactorFunction
{
    Field = "foo",
    Modifier = FieldValueFactorModifier.Log1P,
    Missing = 1,
    Filter = new MatchQuery
    {
        Field = "bar",
        Query = "1"
    },
    Weight = .2
}

但是,在运行时,它似乎在查询本身中输出了无效的 json 格式:

{
    "filter": {
        "match": {
            "bar": {
                "query": "1"
            }
        }
    },
    "field_value_factor": {
        "field": "foo",
        "missing": 1.0,
        "modifier": "log1p",
        "filter": {
            "match": {
                "bar": {
                    "query": "1"
                }
            }
        },
        "weight": 0.2
    },
    "weight": 0.2
}

失败并出现错误field_value_factor query does not support [value]。我确实知道我要模拟的有效函数语法如下:

{
    "filter": {
        "match": {
            "bar": {
                "query": "1"
            }
        }
    },
    "field_value_factor": {
        "field": "foo",
        "missing": 1.0,
        "modifier": "log1p"
    },
    "weight": 0.2
}

这是 NEST/Elasticsearch.net 中的错误吗?我的语法不正确吗?有没有其他方法可以做我想做的事情?

4

1 回答 1

0

This was apparently an issue in the version of NEST I was using. Updating the nuget package resolved it.

于 2021-02-05T15:54:24.413 回答