2016-05-29 60 views
0

這是我想要做的。我有一個在Elasticsearch中有幾個文件的索引。在每個文檔中,我有兩個字段:deviceField(設備的名稱)和pressionField(定期按壓的值)。我想在索引中查詢每個設備的平均壓縮率。你知道一種方法來做一個單一的查詢嗎?事實上,我不想爲每個deviceName的查詢做一個'for'循環。由於我擁有數百萬個設備,這將花費太多時間。Lucen/Elasticsearch:查詢多個值的域

謝謝你的關注和你的幫助。

S

回答

1

您必須使用度量標準聚合。如果要列出所有在同一查詢使用subaggregation

{ 
    "aggs" : { 
     "devices" : { 
      "terms" : { "field" : "deviceField" }, 
      "aggs" : { 
       "avg_pression" : { "avg" : { "field" : "pressionField" } } 
      } 
     } 
    } 
} 

這裏是文檔的鏈接:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-avg-aggregation.html

+0

嗨巴勃羅,感謝您的回覆。但是,我通過使用您的代碼得到了一個錯誤。 「type」:「search_parse_exception」, 「reason」:「無法在[aggs]」中找到聚合器類型[avg_pression]「。你知道如何解決這個問題。 –

+0

也許子聚集必須在另一個子集內。我編輯了代碼。現在試試。如果問題仍然存在,請粘貼查詢以幫助您。 –

+0

現在它的作品再次感謝! –