使用NEST在ElasticSearch中进行衰减

时间:2014-07-10 05:07:10

标签: elasticsearch nest

提出了类似的问题here。但是,我在衰减功能方面遇到了麻烦。

为什么这样做......

_client.Search<object>(s => s
    .Query(q => q
        .FunctionScore(fs => fs
            .Functions(f => f
                .ScriptScore(ss => ss.Script("1"))
                .Filter(ff => ff.Term("a", "b")))
            .BoostMode(FunctionBoostMode.sum))));

但这不是吗?

_client.Search<object>(s => s
    .Query(q => q
        .FunctionScore(fs => fs
            .Functions(f => f
                .Gauss(p => "someField", g => g.Origin("0").Offset("1"))
                .Filter(ff => ff.Term("a", "b")))
            .BoostMode(FunctionBoostMode.sum))));

错误:'Nest.FunctionScoreFunction'不包含'Filter'的定义,也没有扩展方法'Filter'接受类型为'Nest.FunctionScoreFunction'的第一个参数'(你是否缺少using指令或程序集)引用?)

另外,我不认为高斯函数的第一个参数的语法是正确的(即使删除了过滤器)。是否有正确语法的好例子?

2 个答案:

答案 0 :(得分:1)

这是NEST中的一个错误,但后来用PR #799

解决了

答案 1 :(得分:0)

我在版本2.3中遇到了同样的问题。 我在stackoverflow上的解决方案:https://stackoverflow.com/a/40629251/257470