Имеет ли Redis возможность «N географически ближайшего»? - PullRequest
0 голосов
/ 05 марта 2019

Я работал с GEORADIUS и набором функций, но мне любопытно, есть ли способ получить 100 ближайших членов в отсортированном по Z ключе GEORADIUS.

Например ... Я не знаю, сколько членов географически близко к известному члену, поэтому я не знаю, какой радиус можно использовать с GEORADIUS, чтобы получить 100 ближайшихучастники.

Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

JaguarDB имеет очень сильную поддержку геопространственных данных (2D и 3D).Это позволяет хранить несколько измерений для каждой точки, в то время как другие базы данных поддерживают только одно измерение (точка).Также поддерживаются многие сложные запросы, такие как KNN, многоугольник Вороного, выпуклая оболочка.Это с открытым исходным кодом.KNN k запрос ближайшего соседа может помочь вам.Он также поддерживает векторные фигуры в дополнение к растровым фигурам, таким как многоугольники линейных линий.

0 голосов
/ 05 марта 2019

Поддержка GEO Redis ограничена.Там нет такой команды, и вам нужно сделать это на стороне клиента:

  1. Используйте 1 метра в качестве радиуса, чтобы проверить, достаточно ли элементов.
  2. Если естьДостаточно предметов, получите N ближайших предметов из результата.
  3. Если предметов НЕ достаточно, удвойте радиус и перейдите к шагу 1.

Однако,Это не очень эффективно делать на стороне клиента.Я пишу модуль Redis для выполнения сложной работы GEO на стороне сервера.Если производство готово, я дам вам знать:)

...