Выше приведены две разные записи из модели Posts
, которые мы сохранили вasticsearch. Мы пытаемся добавить логи c, которые будут помещать наши липкие сообщения в ленту, как обычные сообщения после истечения срока их действия.
Мы хотим, чтобы оно говорило
"Если is_sticky
И stickied_until
в будущем сортируется по stickied_until
, иначе сортируется по created_at
"
Я думаю, что он работает в SQL (так как мы храним большую часть данных там и только доступные для поиска поля в ES), которые выглядят как
ORDER BY
CASE
WHEN stickied_until >= '#{DateTime.now.utc}'
THEN stickied_until
ELSE created_at
END DESC
, но есть две вещи, управляющие сортировкой, которые, я уверен, вызовут ошибки, а также просто будут ошибаться.
Можно ли сделать такую условную сортировку в ES?