【发布时间】:2021-01-27 11:08:00
【问题描述】:
我想使用 NEST 在 Elastic Search 中执行聚合,这将模仿以下 SQL 查询:
select region, bucket, count(dispositioncode)
from tbl
group by region, bucket
到目前为止我的尝试
var dispositionCodes = new TermsQuery
{
IsVerbatim = true,
Field = "trailstatus",
Terms = new string[] { "TR" }
};
ISearchResponse<TrailReportModel> searchResponse =
ConnectionToES.EsClient()
.Search<TrailReportModel>
(s => s
.Index(feedbackIndex)
.From(0)
.Size(RecordSize)
.Query(q => q.MatchAll()
.Aggregations(fa => fa
.Filter("disp_aggs", f => f.Filter(fd => dispositionCodes))
)
var result = ((Nest.SingleBucketAggregate)searchResponse.Aggregations["disp_aggs"]).DocCount;
这给了我整个记录的计数,而与区域和存储桶无关。但我正在寻找每个区域和存储桶的计数。
我怎样才能做到这一点?
【问题讨论】:
-
为什么我被否决了?我问是因为我没能解决问题(:
-
我已经恢复了原始帖子,因为如果帖子显示出一些事先的努力,则更有可能得到答复。目前尚不清楚您问题的这部分内容为何被删除。
-
读者无法告诉您为什么您收到了反对票,因为选民没有发表评论说明他们投票的原因。我的猜测是,“请帮帮我”的乞求有点需要,而且这里的情况并不好。对您的帖子所做的编辑的快速计数表明,恳求或闲聊的材料已从您之前的问题中删除了至少 70 次。这里优先考虑技术写作。
-
SQL Translate API 可能会为您提供如何在查询 DSL 中表达这一点的好方法:elastic.co/guide/en/elasticsearch/reference/current/…
标签: c# elasticsearch nest dsl