This is an old revision of the document!


Geographic Searches - Indexing

Optimizing Geographic Searches

Geographic searches are specified using a $distance function. As long as there is a multi-column Omnidex index containing the latitude and longitude, the $distance function will be automatically optimized.

There are several types of geographic searches that can be optimized using the $distance function:

Compare two sets of literal latitudes and longitudes
select      $distance(40.0, -105.0, 41.0, -106.0) 
  from 	    $omnidex 
Compare latitudes and longitudes in a table against constant latitude and longitude
select      $distance(40.0, -105.0, latitude, longitude), 
            latitude, longitude,
  from      geo
 where      $distance(40.0, -105.0, latitude, longitude) < 10
Compare latitudes and longitudes in a table against single latitude and longitude derived from a nested query
select      latitude, longitude,
  from      geo
  where     $distance((select      latitude, longitude 
                         from      zipcodes 
                         where     zip = ‘80301’),
                      latitude, longitude) < 10
Compare latitudes and longitudes in a table against multiple latitudes and longitudes derived from a nested query
select      latitude, longitude,
  from      geo
 where      $distance((select      latitude, longitude 
                         from      zipcodes 
                        where      region = 'MT'),
                      latitude, longitude) < 10
 
Back to top
admin/optimization/geo/optimization.1280329209.txt.gz · Last modified: 2012/10/26 14:52 (external edit)