<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Range Aggregation(范圍聚合) 原文鏈接 : [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-range-aggregation.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-range-aggregation.html) 譯文鏈接 : [http://www.apache.wiki/display/Elasticsearch](http://www.apache.wiki/display/Elasticsearch)(修改該鏈接為 **ApacheCN** 對應的譯文鏈接) 貢獻者 : @于永超,[ApacheCN](/display/~apachecn),[Apache中文網](/display/~apachechina) ## Range Aggregation A multi-bucket value source based aggregation that enables the user to define a set of ranges-每個代表一個bucket。在聚合過程中,從每個文件中提取的值將根據每個存儲區范圍進行檢查,并對相關/匹配文檔進行“bucket”,值得注意的是,注意,此聚合包含了from值,不包括每個范圍的to的值。 例子: ``` { "aggs" : { "price_ranges" : { "range" : { "field" : "price", "ranges" : [ { "to" : 50 }, { "from" : 50, "to" : 100 }, { "from" : 100 } ] } } } } ``` 響應結果: ``` { ... "aggregations": { "price_ranges" : { "buckets": [ { "to": 50, "doc_count": 2 }, { "from": 50, "to": 100, "doc_count": 4 }, { "from": 100, "doc_count": 4 } ] } } } ``` ### Keyed Response 將keyed標志設置為true會將一個惟一的字符串鍵與每個bucket關聯起來,并將范圍作為散列而不是數組返回: ``` { "aggs" : { "price_ranges" : { "range" : { "field" : "price", "keyed" : true, "ranges" : [ { "to" : 50 }, { "from" : 50, "to" : 100 }, { "from" : 100 } ] } } } } ``` 響應結果: ``` { ... "aggregations": { "price_ranges" : { "buckets": { "*-50.0": { "to": 50, "doc_count": 2 }, "50.0-100.0": { "from": 50, "to": 100, "doc_count": 4 }, "100.0-*": { "from": 100, "doc_count": 4 } } } } } ``` 可以為每個范圍自定義key: ``` { "aggs" : { "price_ranges" : { "range" : { "field" : "price", "keyed" : true, "ranges" : [ { "key" : "cheap", "to" : 50 }, { "key" : "average", "from" : 50, "to" : 100 }, { "key" : "expensive", "from" : 100 } ] } } } } ``` ### Script ``` { "aggs" : { "price_ranges" : { "range" : { "script" : { "lang": "painless", "inline": "doc['price'].value" }, "ranges" : [ { "to" : 50 }, { "from" : 50, "to" : 100 }, { "from" : 100 } ] } } } } ``` 這將把script參數解釋為具有painless腳本語言和no script參數的inline腳本。要使用文件腳本,請使用以下語法 ``` { "aggs" : { "price_ranges" : { "range" : { "script" : { "file": "my_script", "params": { "field": "price" } }, "ranges" : [ { "to" : 50 }, { "from" : 50, "to" : 100 }, { "from" : 100 } ] } } } } ``` 對于索引腳本,用id參數替換file參數。 ### Value Script 假設產品價格是美元,但我們希望得到歐元的價格區間,我們可以使用value script在聚合之前轉換價格(假設匯率是0.8) ``` { "aggs" : { "price_ranges" : { "range" : { "field" : "price", "script" : { "lang": "painless", "inline": "_value * params.conversion_rate", "params" : { "conversion_rate" : 0.8 } }, "ranges" : [ { "to" : 35 }, { "from" : 35, "to" : 70 }, { "from" : 70 } ] } } } } ``` ### Sub Aggregations 下面的示例不僅將文檔“bucket”到不同的bucket,而且計算每個價格范圍內的價格統計 ``` { "aggs" : { "price_ranges" : { "range" : { "field" : "price", "ranges" : [ { "to" : 50 }, { "from" : 50, "to" : 100 }, { "from" : 100 } ] }, "aggs" : { "price_stats" : { "stats" : { "field" : "price" } } } } } } ``` 響應結果: ``` { "aggregations": { "price_ranges" : { "buckets": [ { "to": 50, "doc_count": 2, "price_stats": { "count": 2, "min": 20, "max": 47, "avg": 33.5, "sum": 67 } }, { "from": 50, "to": 100, "doc_count": 4, "price_stats": { "count": 4, "min": 60, "max": 98, "avg": 82.5, "sum": 330 } }, { "from": 100, "doc_count": 4, "price_stats": { "count": 4, "min": 134, "max": 367, "avg": 216, "sum": 864 } } ] } } } ``` 如果sub aggregation(子集合)也基于與范圍聚合相同的值(如上例中的統計信息聚合),則可以省略其值的定義。以下內容將返回與上述相同的結果 ``` { "aggs" : { "price_ranges" : { "range" : { "field" : "price", "ranges" : [ { "to" : 50 }, { "from" : 50, "to" : 100 }, { "from" : 100 } ] }, "aggs" : { "price_stats" : { "stats" : {} #1 } } } } } ``` #1 ?我們不需要指定price,因為我們默認從父范圍聚合“繼承”它
                  <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>

                              哎呀哎呀视频在线观看