Od końca września 2011 r. PostGIS obsługuje indeksowane zapytania najbliższych sąsiadów za pomocą specjalnych operatorów, których można używać w klauzuli ORDER BY:
SELECT name, gid
FROM geonames
ORDER BY geom <-> st_setsrid(st_makepoint(-90,40),4326)
LIMIT 10;
...zwróci 10 obiektów, których geom
jest najbliżej -90,40
w sposób skalowalny. Kilka dodatkowych szczegółów (opcji i zastrzeżeń) znajduje się w tym poście z ogłoszeniem, a użycie operatorów <-> i <#> jest teraz udokumentowane w oficjalnym dokumencie PostGIS 2.0. (Główna różnica między nimi polega na tym, że <->
porównuje centroidy kształtu i <#>
porównuje ich granice — bez różnicy dla punktów, inne kształty wybierają to, co jest odpowiednie dla Twoich zapytań).