elasticsearch嵌套对象如何对查询结果拆分?

一个订单下面有多个商品。订单对象以nested形式存储,一个订单就是一条数据。

订单1 --> 商品A、商品B、商品C、商品D
订单2 --> 商品A、商品B、商品C、商品D 。。。
订单n --> 商品F、商品x

es中的存储格式:

{
  "_index":"testindex",
  "_type":"testtype",
  "_id":"111",
  "_version":5,
  "_score":1,
  "_source":{
    "id":"111",
    "orderType":"SO",
    "ordersDataFrom":"2018-03-15 10:43:10",
    "items":[
      {
        "skuNo":"13225",
        "quantity":10,
        "cost":50
      },
      {
        "skuNo":"13230",
        "quantity":10,
        "cost":22
      },
      {
        "skuNo":"1375",
        "quantity":10,
        "cost":17
      }
    ]
  }
}

查询结果希望以商品维度来展示,即一个商品就是一条数据,且支持分页。

商品A 订单1
商品B 订单1
商品C 订单1
商品D 订单1

商品A 订单2
商品B 订单2
商品C 订单2
商品D 订单2
。。。
商品F 订单n
商品x 订单n

请问各位大神,这个查询应该怎么写?

阅读 6.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进