问题描述
让我在开头说我是 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"
}
}
},"modifier": "log1p"
},"weight": 0.2
}
这是 nesT/Elasticsearch.net 中的错误吗?我的语法不正确吗?有没有其他方法可以做我想做的事情?
解决方法
这显然是我使用的 NEST 版本中的一个问题。更新 nuget 包解决了它。