2014-10-09 42 views
0

我正在使用elasticsearch創建方面。它適用於計數,但我嘗試了更復雜的任務。問題是,我不知道我想要做任務的名稱....elasticsearch聚合(方面與子方面)


我的實際方面查詢:

"facets": { 
    "name": {"terms": {"field": "name", "size": 20}} 
} 

響應:

"name": { 
    "_type": "terms", 
    "missing": 0, 
    "total": 11, 
    "other": 0, 
    "terms": [ 
    {   "term": "liliales",  "count": 4  }, 
    {   "term": "commelinales", "count": 3  }, 
    {   "term": "dioscoreales", "count": 2  }, 
    {   "term": "arecales",  "count": 1  }, 
    {   "term": "poales",  "count": 1  } 
    ] } } 

這是我的數據的一個例子:

 name  | rank  
_________________________________ 
liliales   | accepted 
liliales   | accepted 
liliales   | misapplied 
liliales   | synonym 

commelinales  | accepted 
commelinales  | misapplied 
commelinales  | synonym 

dioscoreales  | misapplied 
dioscoreales  | synonym 

arecales   | accepted 

poalesa   | synonym 

我想爲每個術語,以「等級」像這樣的數子陣列:

"name" : { 
    "_type" : "terms", 
    "missing" : 0, 
    "total" : 11, 
    "other" : 0, 
    "terms" : [{ 
      "term" : "liliales", 
      "count" : 4, 
      "rank" : { 
       "accepted" : 2, 
       "misapplied" : 1, 
       "synonym" : 1 
      } 
     }, { 
      "term" : "commelinales", 
      "count" : 3, 
      "rank" : { 
       "accepted" : 1, 
       "misapplied" : 1, 
       "synonym" : 1 
      } 
     }, { 
      "term" : "dioscoreales", 
      "count" : 2, 
      "rank" : { 
       "misapplied" : 1, 
       "synonym" : 1 
      } 
     }, { 
      "term" : "arecales", 
      "count" : 1, 
      "rank" : { 
       "accepted" : 1 
      } 
     }, { 
      "term" : "poales", 
      "count" : 1, 
      "rank" : { 
       "synonym" : 1 
      } 
     } 
    ] 
} 

這是什麼kinf方面的的名字,我怎麼能做到這一點嗎?

感謝由提前

回答

2

我認爲你正在尋找的聚合。

聚合是爲構建多級聚合而構建的。

所以你可以有name的第一個等級,然後每個rank有另一個等級。

喜歡的東西:

GET _search 
{ 
    "aggs": { 
    "by_name": { 
     "terms": { 
     "field": "name" 
     }, 
     "aggs": { 
     "by_rank": { 
      "terms": { 
      "field": "rank" 
      } 
     } 
     } 
    } 
    } 
} 
+0

非常感謝你。有用 – AlainIb 2014-10-09 15:04:23