Top
k
проблема - поиск ЛУЧШИХ k
(3 или 1000) элементов в БД
Существует фундаментальная проблема с реляционными БД, заключающаяся в том, что для поиска top k
элементов необходимо обработать ВСЕ строки в таблице. Что делает его бесполезным на больших данных.
Я подаю заявку (для университетских исследований, на самом деле не мое изобретение, я реализую и пытаюсь улучшить оригинальную идею), что позволяет эффективно находить top k
элементы, посещая только 3-5% сохраненные данные . Что делает это действительно быстро .
Есть даже пользовательских настроек , поэтому в некоторых доменах вы можете указать функцию, которая задает лучшее значение для пользователя, и функцию агрегирования, которая задает наиболее значимые атрибуты.
Например, БД автомобилей: атрибуты: (цена, пробег, возраст автомобиля, куб. См, топливо / миля, тип автомобиля ...) и пользовательские значения, например 10 * цена + 5 * топливо / миля + 4 * пробег + возраст автомобиля , (s) он не заботится о типе автомобиля и др. - это спецификация агрегации
Тогда для каждого атрибута (цена, пробег, ...) может существовать совершенно другая «функция-значение», которая задает наилучшее значение для пользователя. Так, например (цена: чем ниже, тем лучше, затем значение уменьшается, до $ 50 тыс., Где значение равно 0 (пользователь не хочет, чтобы автомобиль дороже, чем 50 тыс.). Пробег: другая функция, основанная на его / ее критериях, ответ и так далее ...
Вы можете видеть, что существует достаточно свободы для указания ваших предпочтений и в соответствии с ними, best k
элементы в БД будут найдены быстро.
Я провел много бессонной ночи, думая о реальной юзабилити. Кто может извлечь выгоду из этого запроса БД? Но я не смог ничего поделать и придерживался только академической позиции только для записи. :-( Я надеюсь, что может быть реальным использованием для этого, но я не вижу никакой ....
.... У вас есть идеи, как использовать это в реальной жизни, в реальной проблеме и т. Д ...
I'd love to hear from You.