聚合

POST /es/:target/_search

搜索文档的同时进行聚合

聚合支持

Bucketing

  • terms - 支持在关键字类型和数值类型的字段上使用。
  • range - 支持在数值类型和日期类型的字段上使用。
  • date_range - 支持在日期类型的字段上使用。
  • histogram - 支持在数值类型和日期类型的字段上使用。
  • date_histogram - 支持在日期类型的字段上使用。
  • auto_date_histogram - 支持在日期类型的字段上使用。

指标

  • min, max, count, sum - 支持在数值类型的字段上使用。
  • avg, weighted_vg - 支持在数值类型的字段上使用。
  • Cardinality - 支持在数值类型的字段上使用。

请求示例

POST http://localhost:4080/es/myindex/_search

请求体:

  1. {
  2. "query": {
  3. "bool": {
  4. "should": {
  5. "match": {
  6. "_all": "Ice Hockey"
  7. }
  8. }
  9. }
  10. },
  11. "sort": ["-@timestamp"],
  12. "from": 0,
  13. "size": 20,
  14. "aggs": {
  15. "Medal": {
  16. "terms": {
  17. "field": "Medal",
  18. "size": 10
  19. }
  20. },
  21. "Year": {
  22. "range": {
  23. "field": "Year",
  24. "ranges": [
  25. { "from": 1900, "to": 1920},
  26. { "from": 1921, "to": 1950},
  27. { "from": 1951, "to": 2000},
  28. { "from": 2000, "to": 2021}
  29. ]
  30. }
  31. },
  32. "@timestamp": {
  33. "date_range": {
  34. "field": "@timestamp",
  35. "ranges": [
  36. { "from": "2020-01-21T09:22:50.604Z", "to": "2021-01-21T09:22:50.604Z"},
  37. { "from": "2021-01-22T09:22:50.604Z", "to": "2023-01-21T09:22:50.604Z"}
  38. ]
  39. }
  40. },
  41. "max_Year": {
  42. "max": { "field": "Year" }
  43. },
  44. "min_Year": {
  45. "min": { "field": "Year" }
  46. },
  47. "avg_Year": {
  48. "avg": { "field": "Year" }
  49. },
  50. "weighted_avg_Year": {
  51. "weighted_avg": {
  52. "field": "Year",
  53. "weight_field": "Year"
  54. }
  55. },
  56. "sum_Year": {
  57. "sum": { "field": "Year" }
  58. },
  59. "count_Sport": {
  60. "count": { "field": "Sport" }
  61. }
  62. }
  63. }

响应

  1. {
  2. "took": 250,
  3. "timed_out": false,
  4. "hits": {
  5. "total": {
  6. "value": 3051
  7. },
  8. "max_score": 17.82873837347811,
  9. "hits": null
  10. },
  11. "aggregations": {
  12. "@timestamp": {
  13. "buckets": [
  14. {
  15. "key": "[2020-01-21T09:22:50Z,2021-01-21T09:22:50Z)",
  16. "doc_count": 0
  17. },
  18. {
  19. "key": "[2021-01-22T09:22:50Z,2023-01-21T09:22:50Z)",
  20. "doc_count": 6102
  21. }
  22. ]
  23. },
  24. "Medal": {
  25. "buckets": [
  26. {
  27. "key": "gold",
  28. "doc_count": 1026
  29. },
  30. {
  31. "key": "silver",
  32. "doc_count": 1024
  33. },
  34. {
  35. "key": "bronze",
  36. "doc_count": 1001
  37. }
  38. ]
  39. },
  40. "Year": {
  41. "buckets": [
  42. {
  43. "key": "[1900.000000,1920.000000)",
  44. "doc_count": 132
  45. },
  46. {
  47. "key": "[1921.000000,1950.000000)",
  48. "doc_count": 2292
  49. },
  50. {
  51. "key": "[1951.000000,2000.000000)",
  52. "doc_count": 9822
  53. },
  54. {
  55. "key": "[2000.000000,2021.000000)",
  56. "doc_count": 5646
  57. }
  58. ]
  59. },
  60. "avg_Year": {
  61. "value": 1980.4818092428711
  62. },
  63. "count_Sport": {
  64. "value": 3051
  65. },
  66. "max_Year": {
  67. "value": 2014
  68. },
  69. "min_Year": {
  70. "value": 1908
  71. },
  72. "sum_Year": {
  73. "value": 36254700
  74. },
  75. "weighted_avg_Year": {
  76. "value": 1980.4818092428711
  77. }
  78. },
  79. "error": ""
  80. }