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