Как построить индекс в ElasticSearch с фильтрами по полям содержащим тысячи значений?
Есть основной сторедж в виде MySql.
В нем пользователи, друзья пользователей, видео пользователей и фиксируются просмотры видео роликов пользователями.
Нужно реализовать поиск видео по описанию (поле videos.description) при этом дать возможность фильтровать только видео друзей, и не просмотренные видео.
Примерные объемы данных: Пользователи ~10 млн, у каждого по несколько тыс друзей, видео ~30-50 млн.
Ранее для подобных задач использовали elasticSearch, но там не было такой большой динамики (список друзей может часто изменяться) и размера(хранить во вложенных полях тысячи значений, или массив на тысячи значений) в nested полях.
Вот сейчас уперся в реализацию этой задачи, стоит ли полностью переносить данные в еластик с дублированием для каждого видеоролика списка друзей автора, плюс просмотры. Или выдумывать какой то микс mysql+elasticSearch.
Почитал про join field в еластике, но это не очень популярное решение со своими ограничениями.