2
我要實現以下SQL查詢中彈性等價的:遍歷彈性搜索巢聚合C#
select BookId, PubDate, count(1)
from BookMessages
where BookId in (1,2)
group by BookId, PubDate
因此,我寫了下面的查詢在C#
var searchresponse = client.Search<BookMessages>(s => s
.Query(q => q
.Bool(bq => bq
.Filter(fq => fq.Terms(t => t.Field(f => f.BookId).Terms(BookList)))))
.Aggregations(a => a
.Terms("group_by_book", ts => ts
.Field(f => f.BookId)
.Aggregations(a1 => a1
.DateHistogram("Date", dat => dat
.Field(f1 => f1.PubDate)
.Interval(DateInterval.Day)
.Format("dd/MM/yyyy")
)))));
我試過循環的使用以下代碼輸出,但無法進一步循環。
foreach (var agg in searchresponse.Aggregations)
{
string key = agg.Key;
IAggregate objIAgg = agg.Value;
}
我可以看到quickwatch中的值,但是如何獲取獲取的值?
一般來說,我建議使用'Aggs'助手,因爲它會安全地執行從'IAggregate'到指定聚合的具體聚合類型的轉換。 –
非常感謝Russ提供的建議,我使用了Aggs幫手,它對於演員陣容的轉換很有幫助。 – Hitesh