c# - C# ElasticSearch NEST,复合聚合脚本转换错误
问题描述
我是 ElasticSearch 的新手,它是 C# 的 NEST 客户端。显然,复合聚合的 min_doc_count 没有实现,我应该在请求中使用脚本来实现结果,请参阅:https ://github.com/elastic/elasticsearch/issues/32452#issuecomment-408769861 。
但是,当我尝试在 C# 中实现此功能时,出现以下错误:
"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"))))));
如果我删除第二个聚合,调用就会成功,所以很明显我在 BucketScript 部分做错了。
任何帮助,将不胜感激!
解决方案
我想你想用BucketSelector
而不是BucketScript
.Aggregations(e => e
--> .BucketSelector("bucket_selector", d => d
.BucketsPath(f => f
.Add("counter", "_count"))
.Script("params.counter > 1"))))));
推荐阅读
- here-api - 有没有地方可以报告 HERE 浏览搜索 API 的 API 数据错误?
- python - python - 如何在python中导入与postgres服务器不同的表?
- html - 如何使用 flexbox 将溢出的内容包装在一行中?
- r - R使用模式向量搜索字符向量
- xml - 从 xslt 1.0 中的单个字符串拆分大括号
- python - PayPal Sandbox IPN POST 在 Python Flask 应用程序中出现空白(没有要解析的数据。)
- android - 无法解析 androidx 上的符号“ActivityTestRule”
- function - 获取 POSIX shell 脚本中的函数列表
- assembly - TSR服务程序汇编
- python - 在 Python 中处理 json 文件时出错