头发继续乱 2023-12-01 16:47 采纳率: 47.4%
浏览 10
已结题

el聚合语句 关联查询 统计

两个独立索引
结构如下


POST /customer_index/_doc/3
{
  "name": "John3",
  "id_card": "1234567892",
  "customer_id": "CUST003",
  "age": 25,
  "occupation": "IT",
  "gender": "Male"
}

POST /transaction_index/_doc/5
{
  "id_card": "1234567891",
  "transaction_code": "TRX002",
  "transaction_time": "2023-11-30T10:15:00",
  "transaction_name": "Purchase",
  "transaction_details": "Item purchased: ABC123, Amount: $50.00"
}

现在想通过聚合查询,查出,10年为一个阶段,每十年阶段内 客户所关联的 transaction_code 分组 统计,最高的 10个 ,最后结果 例如
10-20,客户人数100,
50人 做 TRX002
40人做 TRxx003 依次这般的 结果

  • 写回答

17条回答 默认 最新

  • 叫兽-郭老师 Java领域新星创作者 2023-12-01 17:38
    关注
    获得0.60元问题酬金

    由人工智能和答主提供,可以参考如下,如果回答的不正确,及时评论区回复,我追加回答,谢谢。
    为了实现你的需求,你可以使用 Elasticsearch 的聚合功能来完成。以下是一个示例的聚合查询,以获取每个10年阶段内客户关联的 transaction_code 分组统计前10个的情况:

    POST /customer_index/_search
    {
      "size": 0,
      "aggs": {
        "age_ranges": {
          "range": {
            "field": "age",
            "ranges": [
              { "to": 20 },
              { "from": 21, "to": 30 },
              { "from": 31, "to": 40 },
              { "from": 41, "to": 50 },
              { "from": 51 }
            ]
          },
          "aggs": {
            "top_transactions": {
              "terms": {
                "field": "transaction_code",
                "size": 10
              }
            }
          }
        }
      }
    }
    

    请注意,这只是一个基本的示例,你可能需要根据你的实际数据结构和业务需求进行调整。上述查询首先将年龄分为不同的范围,然后在每个年龄范围内使用 terms 聚合来获取每个 transaction_code 的统计信息,并限制结果为前10个。

    你需要根据实际情况调整字段名和年龄范围,并确保索引中包含了正确的数据。此外,为了获得更精确的年龄范围,你可能需要在索引数据时考虑客户的出生日期等信息。

    请注意,这只是一个起点,你可能需要根据你的实际数据和业务需求进行更多的调整。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 赞助了问题酬金15元 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 访问url时不会自动调用其 Servlet的doGet()
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥15 MATLAB解决问题
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享