在ElasticSearch(Nest)中键入聚合

时间:2016-08-08 07:54:59

标签: elasticsearch nest

Elasticsearch索引中有3种类型:type1,type2,type3。 我需要按类型过滤(默认过滤值= type1)。但我也需要获得类型聚合。 但这是不可能的,因为在每个查询中我使用过滤器,并且只有过滤类型的对象。 请帮我弄清楚怎么做。是否只有使用第二个查询而没有过滤器的方法?

1 个答案:

答案 0 :(得分:0)

它似乎是post-filter

的用例
  

post_filter应用于搜索结果的最后一个   搜索请求,已经计算了聚合。

  {
      "query": {
         "match_all": {}
      },
      "aggs": {
        "typeAggr": {
          "terms": { "field": "type" } 
        }
      },
      "post_filter": { 
        "term": { "type": "type1" }
      }
    }

此查询将列出文档匹配过滤器(type1),而汇总将提供结果,而不考虑type字段上的过滤器。