簡體   English   中英

彈性搜索對術語聚合結果使用范圍聚合

[英]Elastic search use range aggregation upon term aggregation result

我的 SQL 格式問題很簡單,但我可以將其轉換為彈性聚合格式

假設我想要彈性搜索中的 blew 查詢結果

SELECT Foo.Type,COUNT(*) FROM Foo GROUP BY Foo.Type HAVING SUM(Foo.Price) > 20 AND SUM(Foo.Price) < 25

彈性中是否有任何聚合組合可以響應此類查詢?

重要的是要提到第一組(Foo.Type)的結果大於最大彈性聚合大小(10000)

我的數據是:


身份證類型價格

1 藍色 10

2藍10

3 藍色 5

4 紅色 15

我的結果應該是這樣的:


藍3

如果有人可以幫助我,我將不勝感激。 謝謝

你可以像下面那樣做

{
  "aggs": {
    "byType": {
      "terms": {
        "field": "type"
      },
      "aggs": {
        "price_sum": {
          "sum": {
            "field": "price"
          }
        },
        "price_bucket_filter": {
                    "bucket_selector": {
                        "buckets_path": {
                          "totalPrice": "price_sum"
                        },
                        "script": "params.totalPrice > 20 && params.totalPrice< 25" 
                    }
                }
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM