The fastest and most efficient spatial field for point data in Lucene/Solr is LatLonPoint in Lucene's sandbox module. I'll include LatLonDocValuesField with this even though it's a separate class. LatLonPoint is based on the Points API, using a BKD index. It's multi-valued capable. LatLonDocValuesField is based on sorted numeric DocValues, and thus is also multi-valued capable (a big deal as the existing Solr ones either aren't or do poorly at it). Note that this feature is limited to a latitude/longitude spherical world model. And furthermore the precision is at about a centimeter – less precise than the other spatial fields but nonetheless plenty good for most applications. Last but not least, this capability natively supports polygons, albeit those that don't wrap the dateline or a pole.
I propose a LatLonPointSpatialField which uses this. Patch & details forthcoming...
This development was funded by the Harvard Center for Geographic Analysis as part of the HHypermap project