Как пометить вложенный атрибут в документе - PullRequest
0 голосов
/ 14 апреля 2019

Я использую эластичный поиск для поиска пользователей.У меня есть такой документ.

{
   "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
); 

1 Ответ

0 голосов
/ 14 апреля 2019

Вам нужно будет использовать агрегацию постфильтра.

  1. Использование запроса для фильтрации order_info с помощью create_time
  2. Использование агрегации значений в приведенном выше запросе для подсчета количества заказов в order_info
  3. Использование запроса post_filter дляполучить результаты, когда число больше, чем

ИЛИ

Просто используйте Elasticsearch SQL REST API elasticsearch sql rest API

Ссылки:

...