<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Executing Aggregations(執行聚合) 原文鏈接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_executing_aggregations.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_executing_aggregations.html) 譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260792](http://www.apache.wiki/pages/viewpage.action?pageId=4260792) 貢獻者 : [那伊抹微笑](/display/~wangyangting),[ApacheCN](/display/~apachecn),[Apache中文網](/display/~apachechina) 聚合提供了從數據中分組和提取數據的能力。最簡單的聚合方法大致等于 **SQL GROUP BY** 和 **SQL** 聚合函數。在 **Elasticsearch** 中,您有執行搜索返回 **hits**(命中結果),并且同時返回聚合結果,把一個響應中的所有 **hits**(命中結果)分隔開的能力。這是非常強大且有效的,您可以執行查詢和多個聚合,并且在一次使用中得到各自的(任何一個的)返回結果,使用一次簡潔和簡化的 **API** 來避免網絡往返。 作為開始,找這個例子按 **state** 將所有的 **account** 給分組了,然后按 **count** 降序(默認)排序返回 **top 10**(默認)的 **state** :? ``` curl -XGET 'localhost:9200/bank/_search?pretty' -d' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword" } } } }' ``` 在 **SQL** 中,上面的聚合概念類似下面 :? ``` SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC ``` 響應如下(部分顯示):? ``` { "took": 29, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits" : { "total" : 1000, "max_score" : 0.0, "hits" : [ ] }, "aggregations" : { "group_by_state" : { "doc_count_error_upper_bound": 20, "sum_other_doc_count": 770, "buckets" : [ { "key" : "ID", "doc_count" : 27 }, { "key" : "TX", "doc_count" : 27 }, { "key" : "AL", "doc_count" : 25 }, { "key" : "MD", "doc_count" : 25 }, { "key" : "TN", "doc_count" : 23 }, { "key" : "MA", "doc_count" : 21 }, { "key" : "NC", "doc_count" : 21 }, { "key" : "ND", "doc_count" : 21 }, { "key" : "ME", "doc_count" : 20 }, { "key" : "MO", "doc_count" : 20 } ] } } } ``` 我們可以看到上面在 **ID**(**Idaho**)中有 **27** 個 **account**(賬戶),接著有 **27** 個?**account**(賬戶)在 **TX**(**Texas**)中,**25** 個賬戶在 **AL**(**Alabama**)中,等等。 注意我們設置了 **size=0** 以不顯示搜索的 **hits**(命中數量),因為我們只希望在響應中看聚合結果。 基于前面的聚合,這個例子按 **state** 計算了平均的賬戶余額(再一次按 **count** 降序(默認)排序返回 **top 10**(默認)的 **state?**):? ``` curl -XGET 'localhost:9200/bank/_search?pretty' -d' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword" }, "aggs": { "average_balance": { "avg": { "field": "balance" } } } } } }' ``` 注意,我們是如何內嵌?**`average_balance`**聚合到?**group_by_state** 聚合的內部的。這是所有聚合中常見的模式。您可以嵌入聚合到隨意的聚合中以從您需要的數據中開窗匯總。 基于前面的聚合,現在讓我們在?**average balance**(平均余額)上降序排序 :? ``` curl -XGET 'localhost:9200/bank/_search?pretty' -d' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword", "order": { "average_balance": "desc" } }, "aggs": { "average_balance": { "avg": { "field": "balance" } } } } } }' ``` 這個例子演示了我們如何按年齡段(**20-29**歲,**30-39**歲,和 **40-49**歲),然后按性別,最后獲得每個年齡段,每個性別的平均賬戶余額 :? ``` GET /bank/_search { "size": 0, "aggs": { "group_by_age": { "range": { "field": "age", "ranges": [ { "from": 20, "to": 30 }, { "from": 30, "to": 40 }, { "from": 40, "to": 50 } ] }, "aggs": { "group_by_gender": { "terms": { "field": "gender.keyword" }, "aggs": { "average_balance": { "avg": { "field": "balance" } } } } } } } } ``` 還有一些我們這里沒有細講的其它的聚合功能。如果您想要做進一步的實驗,[聚合參考指南](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-aggregations.html)是一個比較好的起點。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看