2016-02-22 58 views
2
PUT items/1 
{ "language" : 10, 
    "country" : "US" } 

PUT items/2 
{ "language" : 11, 
    "country" : "UK" } 

PUT items/3 
{ "language" : 10, 
    "country" : "US" } 

PUT items/4 
{ "language" : 12, 
    "country" : "US" } 

我怎样写一个返回的搜索查询的唯一值唯一语言即10, 12他的国家是US弹性搜索 - 返回基于过滤器/匹配

为了让所有独特的语言10,11,12术语列表可以使用聚合。但是,我无法弄清楚如何在其中包含国家/地区过滤器。

回答

2

基于用例来实现这个的一种方式是使用filter aggregations: 示例:

{ 
    "size": 0, 
    "aggs": { 
     "country_us": { 
     "filter": { 
      "term": { 
       "country": "us" 
      } 
     }, 
     "aggs": { 
      "language": { 
       "terms": { 
        "field": "language", 
        "size": 0 
       } 
      } 
     } 
     } 
    } 
}