Я создаю систему рекомендаций, в которой я использую Firebase для хранения и извлечения данных о фильмах и предпочтениях пользователя.
Каждый фильм может иметь несколько атрибутов, и данные выглядят следующим образом:
{
"titanic":
{"1997": 1, "english": 1, "dicaprio": 1, "romance": 1, "drama": 1 },
"inception":
{ "2010": 1, "english": 1, "dicaprio": 1, "adventure": 1, "scifi": 1}
...
}
Чтобы сделать рекомендации, мой алгоритм требует ввода всех данных (фильмов) и сопоставления с профилем пользователя.
Однако в режиме производства мне нужно получить более 10000 фильмов. Хотя алгоритм может справиться с этим относительно быстро, для загрузки этих данных из Firebase требуется много времени.
Я извлекаю данные следующим образом:
firebase.database().ref(moviesRef).on('value', function(snapshot) {
// snapshot.val();
}, function(error){
console.log(error)
});
Мне интересно, есть ли у вас мысли о том, как ускорить процесс? Существуют ли какие-либо плагины или методы, известные для решения этой проблемы?
Я знаю, что денормализация может помочь разбить данные вверх, но проблема в том, что мне нужны ВСЕ фильмы и ВСЕ соответствующие атрибуты.