Что ж, запросы действительно имеют смысл смысл таким образом?Евклидово расстояние - это разумное расстояние для 2D и 3D геометрических данных.Но даже для «пространства-времени» это действительно не имеет смысл.Поскольку 1 секунда - это нечто совершенно отличное от 1 метра.
Сначала решите, какой тип расстояния является разумным, а затем подумайте, какой индекс подходит.В зависимости от ваших запросов вам могут понадобиться очень разные индексы.
Здесь нет «одного размера для всех».Индекс, который хорошо работает для одной задачи и одного набора данных, вероятно, будет хуже, чем линейное сканирование - в частности, с высокой размерностью - для другой.
Динамические данные и статические данные опять-таки сильно отличаются друг от друга.Динамически поддерживать сбалансированное дерево на намного сложнее, чем загружать R-дерево с помощью STR и просто запрашивать его с помощью оконных запросов.Это всего лишь пара строк, которые хороший кодировщик сможет сделать за несколько дней.
Возможно, вы захотите прочитать о проблемах многомерных данных, например, , эта довольно сбалансированная статья о«проклятие размерности» (существует множество статей, в которых говорится, что «вы не можете индексировать многомерные данные» в качестве оправдания неспособности сделать это, по крайней мере, в этом разделе приведены некоторые примеры того, когда вы можете и когдаВы не можете).