2016-07-13 64 views
0

我想製作一個單個查詢它會告訴我映射中哪些字段正在用於特定用戶。這看起來像你應該能夠做的聚合,但我如何畫空白。彈性搜索中使用的字段聚合

所以如果我的映射包含user,field1, field2field3。我想知道哪些實際出現在給定用戶的文檔中。我期待在012文檔中使用field1,在20文檔中使用field2,在使用x的5個文檔中使用field3

+0

因此,基本上,一個'terms'聚集的領域'每個字段user',比一個'filters'聚集。這應該給你'user/{field1:count,field2:count,field3:count}' –

回答

1

如果我深知的要求,這應該這樣做:

{ 
    "size": 0, 
    "query": { 
    "term": { 
     "user": { 
     "value": "x" 
     } 
    } 
    }, 
    "aggs": { 
    "field1_count": { 
     "filter": { 
     "exists": { 
      "field": "field1" 
     } 
     } 
    }, 
    "field2_count": { 
     "filter": { 
     "exists": { 
      "field": "field2" 
     } 
     } 
    }, 
    "field3_count": { 
     "filter": { 
     "exists": { 
      "field": "field3" 
     } 
     } 
    } 
    } 
} 
+0

非常感謝你。 – aepheus