ElasticSearch NEST - FieldValueFactorFunction 评分函数输出无效 json 查询
ElasticSearch NEST - FieldValueFactorFunction score function outputting invalid json query
让我先说明一下,我是 ElasticSearch 和 NEST 的新手,可能做错了什么。这是使用 NEST 7.6.2.
我正在按照 documentation 创建一个 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 中的错误吗?我的语法不正确吗?有没有其他方法可以完成我想做的事情?
这显然是我使用的 NEST 版本中的一个问题。更新 nuget 包解决了它。
让我先说明一下,我是 ElasticSearch 和 NEST 的新手,可能做错了什么。这是使用 NEST 7.6.2.
我正在按照 documentation 创建一个 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 中的错误吗?我的语法不正确吗?有没有其他方法可以完成我想做的事情?
这显然是我使用的 NEST 版本中的一个问题。更新 nuget 包解决了它。