如何在 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#中将输入发送到winlogon

在 C# 中将十六进制值从 SQL Server 转换为日期时间

如何从邮递员查询参数c#发送值列表

如何在 C# 中将字符串转换为 DateTime?

如何在 C# 中将数据发送到 ASP.NET Core MVC 控制器?

C#:如何在 Blazor Wasm 托管中将动态 Razor 组件从服务器发送到客户端?