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