在弹性搜索中使用过滤器查询嵌套字段上的聚合

日本语

例如,我需要在弹性搜索中使用过滤器进行汇总。我有一些资产在弹性搜索中另存为文档

{
"id":1,
"name":"1",
"url":"1png20160612115249190.png",
"description": "this is a good asset",
"alt_sizes": ["hi","yes"],
"tags":[{ "id":"1", "name":"Movies"},
    { "id":"2", "name":"Sports"}],
"packs":[{ "id":"1", "name":"pack1", "partnerId":"1"},
    { "id":"2", "name":"pack2 test", "partnerId":"2"}],
"category":[{ "id":"1", "name":"cat1"},
    { "id":"2", "name":"cat2"}],
"appPartner":[{ "id":"1", "name":"par1"},
        { "id":"2", "name":"par2"}],
"created_time":"2016-07-26 00:00:00",
"updated_time":"2016-07-26 10:45:43"
}

在这里,这些包在ES中被索引为嵌套类型。包中将包含ID,名称和partnerId的数组。现在,我想要的是聚合具有特定partnerId的包装,就像我希望所有具有partnerId = 10的包装一样。

我已经试过这个查询

{
    "size":0,
   "query": {
     "nested": {
                  "path":"appPartner",
                  "query": {
                    "bool": {
                      "must": [
                        {"match": {"appPartner.id": "1"}}
                      ]
                    }
                  }
                }
   },
   "aggs": {
      "packs" : {
          "nested" : {
              "path" : "packs"
          }, 
           "aggs" : {
              "id" : {
                  "terms" : {
                      "field" : "packs.id"
                  }
              ,
              "aggs":{
                  "name":{
                    "terms" : {
                          "field" : "packs.name"
                      }
                  }
             }
             }
          }       

      }
   }
}

该查询使我可以汇总所有嵌套的包ID。我需要汇总所有嵌套的packid,其中partnerID =

安德烈·斯特凡(Andrei Stefan)
  "aggs": {
    "packs": {
      "nested": {
        "path": "packs"
      },
      "aggs": {
        "partner": {
          "filter": {
            "term": {
              "packs.partnerId": "10"
            }
          },
          "aggs": {
            "id": {
              "terms": {
                "field": "packs.id"
              },
              "aggs": {
                "name": {
                  "terms": {
                    "field": "packs.name"
                  }
                }
              }
            }
          }
        }
      }
    }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

弹性 - QueryingParsingException - 查询不支持 - 使用过滤器按关联字段进行搜索时

弹性搜索:使用过滤器并应查询布尔值

弹性嵌套查询字段应该存在过滤器

在弹性搜索中使用带有过滤器的聚合

使用术语过滤器的弹性搜索过滤查询

在聚合中使用过滤器或 Q

在不同字段上使用过滤器的字段上的Firestore查询顺序

如何在odoo中使用过滤器搜索更改选择字段?[Odoo 9]

弹性搜索嵌套过滤器

弹性搜索中的查询与过滤器

SPARQL:在查询中使用过滤器

如何在.Net核心中将弹性查询聚合过滤器转换为嵌套查询

弹性搜索中如何应用过滤器?

弹性搜索。嵌套网络:弹性属性的术语过滤器

弹性搜索 - 产品选项的聚合过滤器

使用MongoDB C#驱动程序在嵌套数组上使用过滤器构建器查询

弹性搜索基于日期的嵌套查询过滤器未返回正确的结果

在向量上使用过滤器

弹性搜索过滤器聚合,每个存储桶中都有多个过滤器

在弹性搜索嵌套对象中应用多个过滤器

在页脚中使用过滤器进行列搜索-不显示页脚过滤器-Laravel Datatables Yajrabox

弹性搜索过滤器/查询中的多个 bool 子句

弹性搜索地理位置查询过滤器

嵌套查询嵌套,过滤器聚合失败

JQL查询-在另一个JQL查询中使用过滤器结果

无法使用过滤器过滤多个字段

具有过滤器的弹性搜索聚合无法过滤聚合

在ListView中使用过滤器功能/搜索栏时,应用崩溃

如何在 Angular/Express/MongoDB 中使用过滤器创建搜索?