2016-04-20 20 views
0

私は様々なProcessNameを持つ多くの文書を持っています。 それぞれにはCodeという名前のステータスコードがあります。elasticsearchの2つ以上のフィールドで集計します

これらの2つのフィールドでドキュメントを集計する必要があります。例えば

:私は2つのフィールドを持つterms配列を作るしようとした

POST /_search 
{ 
    "query": { 
     "bool": { 
      "must": [ 
      { 
       "term": { 
       "_type": "monitor" 
       } 
      } 
      ] 
     } 
    }, 
    "aggs" : { 
     "ProcessNameAgg" : { 
      "terms" : { "field" : "ProcessName", 
         "size" : 5, 
         "order" : { "_count" : "desc" } 
      } 
     } 
    } 
} 

、残念ながら:

ProcessA 
code: 1 
count: 220 

ProcessA 
code: 2 
count: 335 

ProcessB 
code: 2 
count: 520 

ProcessC 
code: 3 
count: 520 

私が唯一のフィールド(ProcessName)で集約することができました私は例外を解析しています(用語は1つのフィールドしか得られません)。

答えて

1

これを試してみてください:

POST /_search 
{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "_type": "monitor" 
      } 
     } 
     ] 
    } 
    }, 
    "aggs": { 
    "ProcessNameAgg": { 
     "terms": { 
     "field": "ProcessName", 
     "size": 5, 
     "order": { 
      "_count": "desc" 
     } 
     }, 
     "aggs": { 
     "codes": { 
      "terms": { 
      "field": "code", 
      "size": 10 
      } 
     } 
     } 
    } 
    } 
} 
関連する問題