elasticsearch - 带脚本的 Elastic NEST SumAggregation

标签 elasticsearch c#-4.0 nest

我有这个弹性查询:

"aggs":{
  "GroupByDomeinRelatieCode":{
     "aggs":{
        "SumNettoRegelBedrag":{
           "sum":{
                    "script": {
                      "lang": "painless",
                      "source": "doc['nettoRegelbedrag'].value * (100 - doc['uitgesteldeKortingsPercentage'].value) / 100 "
                    } 
                 }
        }
     },
     "terms":{
        "field":"domeinRelatieCode.keyword",
        "size":10000
     }
  },
  "TotalSumAggragation":{
     "sum":{
                "script": {
                  "lang": "painless",
                  "source": "doc['nettoRegelbedrag'].value * (100 - doc['uitgesteldeKortingsPercentage'].value) / 100 "
                } 
             }
  }
}

我需要使用对象初始值设定项将其转换为 C# Nest。 我当前的代码:

var aggs = new AggregationDictionary()
{
    { "GroupByDomeinRelatieCode" ,   new TermsAggregation("GroupByDomeinRelatieCode")
        {
            Field = Infer.Field<ElasticInvoiceLine>(x => x.DomeinRelatieCode.Suffix("keyword")),
            Size = 10000,
            Aggregations = new SumAggregation("SumNettoRegelBedrag", ADD SCRIPT HERE?)
        }
    },
    { "TotalSumAggragation", new SumAggregation("TotalSumAggragation", ADD SCRIPT HERE?)}
};

我尝试使用 ScriptQuery 和 ScriptField,但 SumAggregation 不接受它。

var script = new ScriptQuery
{
    Name = "UitgesteldeKorting",
    Script = new InlineScript("doc['nettoRegelbedrag'].value * (100 - doc['uitgesteldeKortingsPercentage'].value) / 100")
    {
        Lang = "painless"
    },
};

var scriptField = new ScriptField()
{
    Script = new InlineScript("doc['nettoRegelbedrag'].value * (100 - doc['uitgesteldeKortingsPercentage'].value) / 100")
    {
        Lang = "painless"
    }
};

我不知道如何将脚本部分添加到 SumAggregations 中。我怎样才能做到这一点? 谢谢!

最佳答案

您可以通过 Script 属性传递脚本,如下所示

Aggregations = new SumAggregation("SumNettoRegelBedrag", null) { Script = new InlineScript("") }

希望有帮助。

关于elasticsearch - 带脚本的 Elastic NEST SumAggregation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61823205/

相关文章:

elasticsearch - 如何为嵌套对象建立简单术语查询?

java - 使用ES java库准备嵌套排序过滤器

c#-4.0 - 对通用 ContinueWith 的模糊调用

elasticsearch - 是否必须为要使用ElasticSearch搜索的所有索引创建POCO对象?

elasticsearch - Django Haystack 通过 Elasticsearch 后端按距离排序,而不是 geo_point 字段错误

elasticsearch - Elasticsearch 2.0中的ElasticProperty

c# - 在 C# 中从 MSSQL 输出列的内容

c# - 使用C#将特定页面从一个word文档复制到另一个word文档

c# - 如何使用流畅的映射来映射Dictionary <string,MyDto>类型的属性

elasticsearch - GeoShape 不存储纬度/经度