Lucene Spatial Contrib
The lucene spatial contrib explores various ways to handle spatial search in lucene.
Cartesian Tier
For more info, see: http://www.nsshutdown.com/projects/lucene/whitepaper/locallucene.htm
Geohash
TODO, geohash could have a nice fit with lucene.
- http://en.wikipedia.org/wiki/Geohash
- http://code.google.com/p/geospatialweb/source/browse/trunk/geohash/src/Geohash.java?r=104
- http://mappinghacks.com/code/geohash.py.txt (public domain)
- http://labs.metacarta.com/blog/27.entry/geographic-queries-on-google-app-engine/
- http://mappinghacks.com/2008/05/29/geohash-implemented-in-python/
Simple numerical lat/long search using NumericRangeQuery (Lucene Core version 2.9)
Using NumericField, WGS84 latitude and longitude can be efficiently encoded and queried by NumericRange'Query. Use this, if you have a lot of point features that should be queryable using (possibly large) bounding boxes. NumericRange'Query is very efficient, when the user searches for bounding boxes of any size and wants to get all included point features (it is even fast, when the user selects large bounding boxes, e.g. -180,-90,180,90 runs in constant time independent of the large range bounds). See: SearchNumericalFields.