This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
admin:optimization:geo:optimization [2010/07/28 15:06] els |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | {{page>:top_add&nofooter&noeditbtn}} | ||
| - | ====== Geographic Searches - Indexing ====== | ||
| - | |||
| - | [[admin:optimization:geo:home|Overview]] -> [[admin:optimization:geo:latlong|Latitude and Longitude]] -> [[admin:optimization:geo:radius|Radius Distance Searches]] -> [[admin:optimization:geo:indexing|Indexing]] -> **[[admin:optimization:geo:optimization|Optimization]]** | ||
| - | |||
| - | ===== Optimizing Geographic Searches ===== | ||
| - | |||
| - | Geographic searches are specified using a [[dev:sql:functions:distance|$distance function]]. As long as there is a multi-column Omnidex index containing the latitude and longitude, the $distance function will be automatically optimized. | ||
| - | |||
| - | ===== Examples ===== | ||
| - | The following are examples of several types of geographic searches that can be optimized using the $distance function. | ||
| - | |||
| - | ==== Distance between two sets of coordinates ==== | ||
| - | |||
| - | <code> | ||
| - | select $distance(40.0, -105.0, 41.0, -106.0) | ||
| - | from $omnidex | ||
| - | </code> | ||
| - | |||
| - | ==== Distance between two sets of coordinates using columns ==== | ||
| - | |||
| - | <code> | ||
| - | select $distance(40.0, -105.0, latitude, longitude), | ||
| - | latitude, longitude, | ||
| - | from geo | ||
| - | where $distance(40.0, -105.0, latitude, longitude) < 10 | ||
| - | </code> | ||
| - | |||
| - | ==== Distance between two sets of coordinates using a subquery ==== | ||
| - | |||
| - | <code> | ||
| - | select latitude, longitude, | ||
| - | from geo | ||
| - | where $distance((select latitude, longitude | ||
| - | from zipcodes | ||
| - | where zip = ‘80301’), | ||
| - | latitude, longitude) < 10 | ||
| - | </code> | ||
| - | |||
| - | ==== Distance between multiple sets of coordinates using a subquery ==== | ||
| - | |||
| - | <code> | ||
| - | select latitude, longitude, | ||
| - | from geo | ||
| - | where $distance((select latitude, longitude | ||
| - | from zipcodes | ||
| - | where region = 'MT'), | ||
| - | latitude, longitude) < 10 | ||
| - | </code> | ||
| - | |||
| - | {{page>:bottom_add&nofooter&noeditbtn}} | ||