Учитывая, что в моей базе знаний есть следующее:
1 0 6 20 0 0 6 20
1 0 3 6 0 0 3 6
1 0 15 45 0 0 15 45
1 0 17 44 0 0 17 44
1 0 2 5 0 0 2 5
Я хочу найти ближайших соседей следующего вектора:
1 0 5 16 0 0 5 16
в соответствии с метрикой расстояния. Поэтому в этом случае, учитывая определенный порог, я должен обнаружить, что первый вектор, указанный в списке, является ближайшим к данному вектору. В настоящее время размер моей базы данных знаний составляет порядка миллионов, поэтому вычисление метрики расстояния для каждой точки, а затем сравнение оказывается дорогостоящим. Есть ли альтернативы в том, как добиться этого со значительным ускорением?
Я открыт практически для любого подхода, включая использование пространственных индексов в MySQL (за исключением того, что я не совсем уверен, как эта проблема может быть решена) или какое-то хеширование (это было бы здорово, но опять же, я не полностью уверен).