如何为每个文档aggs嵌套属性

问题描述 投票:0回答:1

我使用弹性搜索进行用户搜索。我有这样的文件。

{
   "uid":1,
   "fullname": "xxxx",
   "order_info": [
      {"order_id":1, "create_time":"2018-01-01"},
      {"order_id":2, "create_time":"2019-01-01"},
      {"order_id":3, "create_time":"2019-02-01"}
    ]
}

我可以获得像这个sql的文档

select * from member_info where id in (
  select member_id from order_info where create_time > '2019-01-01' group by 
  uid having count(*) > 3
); 
elasticsearch querydsl
1个回答
0
投票

您需要使用Post Filter Aggregation。

  1. 使用查询使用create_time过滤order_info
  2. 在上述查询上使用值聚合来计算order_info中的订单数
  3. 当count大于时,使用post_filter查询来获取结果

要么

只需使用Elasticsearch SQL REST API elasticsearch sql rest API

参考文献:

© www.soinside.com 2019 - 2024. All rights reserved.