Учитывая обширную базу данных с сотнями миллионов статей (или статей для исследователей) с заголовком, рефератом, количеством авторов и цитирований, что было бы лучшим способом использования упругого поиска, чтобы он возвращал лучших k авторов по h-index, даваязапрос в секунду, чтобы ответить на вопрос типа «кто из ведущих исследователей рака мозга?»
Я пытаюсь решить эту проблему с помощью алгоритма с учетом сложности времени и памяти для распределенной вычислительной системы.Идеально с эластичным поисковым плагином.Я знаю, что при использовании наивного убеждения, что это будет что-то вроде
Группировка по автору -> сортировка по количеству цитирований -> вычислить h-index -> resort
При таких ... сложность будет O(nlog (n)) и требует O (n) памяти.
Я ищу O (log (h)) время выполнения и O (kh) решение для памяти (n - число статей, h -средний авторский h-индекс).