C#ElasticSearch嵌套,复合聚合脚本转换错误
我是ElasticSearch的新手,它是C#的NEST客户端。 显然,复合聚合的min_doc_计数没有实现,我应该在请求中使用脚本来实现结果,请参见: 但是,当我尝试在C#中实现此功能时,我得到以下错误:C#ElasticSearch嵌套,复合聚合脚本转换错误,c#,elasticsearch,nest,aggregation,C#,elasticsearch,Nest,Aggregation,我是ElasticSearch的新手,它是C#的NEST客户端。 显然,复合聚合的min_doc_计数没有实现,我应该在请求中使用脚本来实现结果,请参见: 但是,当我尝试在C#中实现此功能时,我得到以下错误: "Type: class_cast_exception Reason: "Cannot cast from [boolean] to [java.lang.Number]."" 我的代码如下所示: ISearchResponse<FooBar> duplicateBucket
"Type: class_cast_exception Reason: "Cannot cast from [boolean] to [java.lang.Number].""
我的代码如下所示:
ISearchResponse<FooBar> duplicateBucket = _elasticClient.Search<FooBar>(
s => s
.Aggregations(a => a
.Composite("dupe_bucket", c => c
.Sources(b => b
.Terms("foo", x => x
.Field("foo"))
.Terms("bar", x => x
.Field("bar")))
.Size(1000)
.Aggregations(e => e
.BucketScript("bucket_selector", d => d
.BucketsPath(f => f
.Add("counter", "_count"))
.Script("params.counter > 1"))))));
ISearchResponse duplicateBucket=\u elasticClient.Search(
s=>s
.聚合(a=>a
.Composite(“dupe_bucket”,c=>c
.来源(b=>b
.Terms(“foo”,x=>x
.字段(“foo”))
.术语(“条形”,x=>x
。字段(“栏”))
.尺寸(1000)
.聚合(e=>e
.BucketScript(“bucket_选择器”,d=>d
.BucketsPath(f=>f
添加(“计数器”、“计数”))
.Script(“参数计数器>1”()()()));
如果我删除第二个聚合,调用将成功,因此很明显我在BucketScript部分做了一些错误的事情
任何帮助都将不胜感激 我想您应该使用
BucketSelector
而不是BucketScript
.Aggregations(e => e
--> .BucketSelector("bucket_selector", d => d
.BucketsPath(f => f
.Add("counter", "_count"))
.Script("params.counter > 1"))))));
生成的查询是什么样子的?我想您应该使用
BucketSelector
而不是BucketScript
@Val是的,这就成功了,谢谢!