如何在 C# Nest 中将日期值发送到 elasticsearch 聚合查询
Posted
技术标签:
【中文标题】如何在 C# Nest 中将日期值发送到 elasticsearch 聚合查询【英文标题】:How to send date value to elasticsearch aggregation query in C# Nest 【发布时间】:2021-08-11 19:00:03 【问题描述】:我正在运行一个聚合查询,它工作正常。我需要使用以下代码将特定日期范围更新为“过去 12 个月”。 但日期范围不适用于此处。 如何解决这个问题? 谢谢
``
DateTime d = new DateTime();
d = DateTime.Now;
//var startDate = new DateTime(d.Year, d.Month, 1);
//var endDate = startDate.AddMonths(-12);
var searchResponse = client.Count<Location>(
s => s
.Query(q => q
.Bool(b => b
.Must(f2 => f2.DateRange(date => date
.Field("@jobdate")
.GreaterThanOrEquals(d.AddDays(-365))
.LessThanOrEquals(d.AddDays(-1))
)
)
)
).Query(c => c
.QueryString(d => d
.Query("city: \"Chicago\"")
)
)
);
``
【问题讨论】:
你能分享你的索引映射吗? 【参考方案1】:在 NEST 中使用日期直方图聚合:
https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/date-histogram-aggregation-usage.html
【讨论】:
以上是关于如何在 C# Nest 中将日期值发送到 elasticsearch 聚合查询的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中将十六进制值从 SQL Server 转换为日期时间