Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在NEST和Elastic Search中基于字段进行聚合?_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest_Dsl - Fatal编程技术网 elasticsearch,nest,dsl,C#,elasticsearch,Nest,Dsl" /> elasticsearch,nest,dsl,C#,elasticsearch,Nest,Dsl" />

C# 如何在NEST和Elastic Search中基于字段进行聚合?

C# 如何在NEST和Elastic Search中基于字段进行聚合?,c#,elasticsearch,nest,dsl,C#,elasticsearch,Nest,Dsl,我想使用NEST在弹性搜索中执行聚合,它将模拟以下SQL查询: select region, bucket, count(dispositioncode) from tbl group by region, bucket 我迄今为止的努力 var dispositionCodes = new TermsQuery { IsVerbatim = true, Field = "trailstatus&

我想使用NEST在弹性搜索中执行聚合,它将模拟以下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;
var处置代码=新术语
{
IsVerbatim=true,
Field=“trailstatus”,
Terms=新字符串[]{“TR”}
};
ISearchResponse搜索响应=
ConnectionToES.EsClient()
.搜索
(s=>s
.索引(反馈索引)
.从(0)
.Size(记录大小)
.Query(q=>q.MatchAll()
.聚合(fa=>fa
.Filter(“disp_aggs”,f=>f.Filter(fd=>dispositionCodes))
)
var result=((Nest.SingleBucketAggregate)searchResponse.Aggregations[“disp_aggs]”)。DocCount;
这给了我整个记录的计数,而不考虑区域和存储桶。但是我在寻找每个区域和存储桶的计数


如何实现这一点?

没有测试用例有点困难,但您可能希望使用(in)

使用此选项,您可以指定如下内容:

.Aggregations(a => a
     .Terms("group_by_region", t => t.Field("region"))
     .Terms("group_by_bucket", t => t.Field("bucket")))

这也可能有帮助,这是一个类似的问题:)

如果没有要测试的案例,这有点困难,但是您可能希望使用(in)

使用此选项,您可以指定如下内容:

.Aggregations(a => a
     .Terms("group_by_region", t => t.Field("region"))
     .Terms("group_by_bucket", t => t.Field("bucket")))

这也可能有帮助,这是一个类似的问题:)

为什么我被否决了?我问是因为我没能解决这个问题(:我已经恢复了原来的帖子,因为如果这些帖子显示出之前的努力,那么它们更有可能得到回复。不清楚你的问题的这一部分为什么被删除。读者无法告诉你为什么会收到否决票,因为投票人没有评论说他们为什么投票。我的猜测是“请帮助我”乞讨是有点必要的,这在这里不太合适。快速计算一下对您的帖子所做的编辑,可以发现,恳求或闲聊的内容已经从您以前的问题中删除了至少70次。这里更倾向于技术写作。SQL Translate API可能会为您提供一种在查询中表达这一点的好方法SL:为什么我被否决了?我问这个问题是因为我没能解决问题(:我已经恢复了原来的帖子,因为如果这些帖子显示出之前的努力,那么它们更有可能得到回复。不清楚你的问题的这一部分为什么被删除。读者无法告诉你为什么会收到否决票,因为投票人没有评论说他们为什么投票。我的猜测是“请帮助我”乞讨是有点必要的,这在这里不太合适。快速计算一下对您的帖子所做的编辑,可以发现,恳求或闲聊的内容已经从您以前的问题中删除了至少70次。这里更倾向于技术写作。SQL Translate API可能会为您提供一种在查询中表达这一点的好方法SL:@priyanka.sarkar有帮助吗?@priyanka.sarkar有帮助吗?