Elasticsearch按照某個字段去重查詢


索引較多:

index-1_t_order
index-2_t_order
index-32_t_order

根據pay_amount排序,order_no去重,最后分頁。

說明:
1、collapse:去重得到去重后的記錄,配合"from": 0, "size": 1分頁得到結果;(注意:此處查詢返回的total-hits不是去重后的結果數量,而是命中的記錄數,要獲取去重后的記錄數要使用cardinality)

2、cardinality:得到去重統計結果

GET /index-*_t_order/_search
{
  "from": 0,
  "size": 1,
  "track_total_hits": true,
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "push_time": {
              "gte": "2022-02-08",
              "lte": "2022-02-09",
              "time_zone": "+08:00"
            }
          }
        },
        {
          "terms": {
            "org_code.keyword": [
              "00T0024",
              "00T0025"
            ]
          }
        }
      ]
    }
  },
  "sort": [
    {
      "pay_amount": {
        "order": "desc"
      }
    }
  ],
  "collapse": {
    "field": "order_no.keyword"
  },
  "aggregations": {
    "count": {
      "cardinality": {
        "field": "order_no.keyword"
      }
    }
  }
}

 參考:官方文檔1      官方文檔2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM