Elasticsearch核心技術與實戰學習筆記 47 | 作用範圍與排序

一 序

  本文屬於極客時間Elasticsearch核心技術與實戰學習筆記系列。

二 聚合的作用範圍

  • ES 聚合分析的默認作用範圍是 query 的查詢結果集

  • 同時 ES 還支持以下方式改變聚合的作用範圍

    • Filter

    • Post_Filter

    • Global

2.1 demo

   

filter的範圍:

下面的all_jobs是query的範圍對所有員工工作進行分類。上面的older_person是對年齡做了filter(只對子聚合生效)。右側的結果返回分桶的情況。

Post_Filter

  • 是對聚合分析後的文檔進行再次過濾
  • Size 無需設置爲 0
  • 使用場景
    • 一條語句,獲取聚合信息 + 獲取符合條件的文檔

jobs聚合是對全部的職業分桶,post_filter是匹配查詢條件:"job.keyword": "Dev Manager

Global

上面的查詢條件,query是要按照age>40去篩選,下面的jobs是根據job.keyword聚合。返回的結果是1

Golbal,無視query,對全部文檔進行統計:返回的結果是20條。

三 排序

3.1 order

 指定 order,按照 count 和 key 排序

  • 默認情況,按照 count 降序排序
  • 指定 size,就能返回相應的桶

查詢條件:age>20,工作類型分桶,排序是count升序,key降序。右側的結果符合預期。

3.2 基於子聚合的值排序

   

基於工作類型分桶,基於分桶的平均工資再做排序。

上面統計的是單值,

這裏排序是統計的min降序

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章