В настоящее время я работаю над приложением, в котором мы обрабатываем события. Итак, в Elasticsearch у нас есть документ с именем Event.
Раньше у нас был только один вид события (уникальное событие, происходящее 13 мая с 9:00 до 11:00), сортировка была простой (сортировка по дате начала с порядком)
Недавно мы добавили новую функцию, которая позволяет нам создавать повторяющиеся события, это означает, что теперь у нас есть 2 уровня внутри Elasticsearch (отношение родитель-потомок).
У нас может быть родительское событие от 12 мая с 14:00 до 14 мая с 18:00, связанное с этим событием, например, у нас есть дочерние элементы, которые происходят ежедневно. Таким образом, у нас было бы: 12 мая с 14:00 до 18:00, 13 мая с 14:00 до 18:00, 14 мая с 14:00 до 18:00.
Проблема с фактической сортировкой заключается в том, что когда мы будем 12 мая в 22:00, мы найдем повторяющееся событие в верхней части списка, а после этого будет уникальное событие.
Я хотел бы иметь сортировку, в которой ближайшая дата имеет более высокий приоритет. В этом случае уникальное событие должно было быть первым в списке.
Чтобы это произошло, я проиндексировал дочерние узлы в родительском повторяющемся событии, чтобы иметь дочерние элементы start_date. Идея заключалась бы в том, чтобы получить ближайшую дату из дочернего узла для каждого повторяющегося события и отсортировать ее по start_date каждого уникального события.
У меня нет большого опыта работы с elasticsearch, поэтому я как бы застрял, я видел много информации в документации (родитель-потомок, вложенные объекты, скрипты и т. д.), но я не знаю, как с этим справиться кейс.
Я надеюсь, что я правильно объяснил, если у вас есть какие-либо вопросы, не стесняйтесь задавать их, я был бы рад предоставить вам дополнительную информацию.