c# - 如何将特定的Elasticsearch DSL查询转换为嵌套查询?

标签 c# elasticsearch nest dsl

如何将下面的DSL查询转换为C#NEST查询?

GET project/_search
{
  "size": 0, 
  "aggs": {
  "group_by_projectId": {
      "filter": {
      "terms": {
         "projectId.keyword": ["1", "2", "18"]
       }
    },
    "aggs": {
      "project_tags": {
      "terms": {
        "field": "projectId.keyword",
        "size": 100
     },
      "aggs": {
        "last_process_time": {
          "max": {
            "field": "processedAt"
          }
        }
       }
      }
     }
    }
   }
 }

有人会帮我查询嵌套吗?先感谢您。

最佳答案

我已经将查询转换如下,并且可以正常运行:

_elasticClient.SearchAsync<Project>(s => s
                .Size(0)
                .Aggregations(a => a
                    .Filter("filter_by_projectId", f => f
                        .Filter(ff => ff
                            .Terms(t => t
                                .Field(tf => tf.ProjectId)
                                .Terms(projects
                                    .Select(ps => ps.Id))))
                        .Aggregations(agg => agg
                            .Terms("group_by_projectId", st => st
                                .Field(o => o.ProjectId.Suffix("keyword"))
                                .Size(100)
                                .Aggregations(aa => aa
                                    .Max("last_process_time", sa => sa
                                        .Field(o => o.ProcessedAt))))))));

关于c# - 如何将特定的Elasticsearch DSL查询转换为嵌套查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48184989/

相关文章:

java - 线程中出现异常 "main"java.lang.IllegalArgumentException : java. lang.Object 不是索引实体或索引实体的子类

elasticsearch - Jenkins Logstash 插件不向 Logstash 发送数据

ElasticSearch似乎不支持数组查找

elasticsearch - Elasticsearch 返回错误结果

nest - 使用自定义拦截器进行响应

.net - .Net Nest中的ElasticSearch过滤器聚合

c# - C# 中的 Windows .NET 程序与 C++ 中的 Linux 程序之间的 TCP

c# - 具有私有(private) setter 的 EFCore Base 实体模型属性 - 迁移异常行为

c# - 重叠正则表达式替换

c# - 如何读取 EnumMember 属性的值