[ 
https://issues.apache.org/jira/browse/LUCENE-6450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14539533#comment-14539533
 ] 

Karl Wright commented on LUCENE-6450:
-------------------------------------

Thinking about this further, I think that the simplicity of the GeoPointField 
solution is based on two things:
(1) A good binary packing of a geohash value of a fixed depth
(2) The ability to reconstruct the lat/lon from the geohash value directly

For a Geo3d equivalent, nobody to date has come up with a decent (x,y,z) 
geohash with the right locality properties.  I'm not certain how important 
those locality properties actually *are* for GeoPointField, though.  If they 
are important, then effectively we'd need to pack the *same* lat/lon based 
geohash value that GeoPointField uses, but have a lightning fast way of 
converting it to (x,y,z).  A lookup table would suffice but would be huge at 
9mm resolution. :-)  Adjusting the resolution would be a potential solution.  
If locality is *not* needed, then really a "geohash" would be any workable 
fixed-resolution binary encoding of the (x,y,z) values of any given lat/lon.

> Add simple encoded GeoPointField type to core
> ---------------------------------------------
>
>                 Key: LUCENE-6450
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6450
>             Project: Lucene - Core
>          Issue Type: New Feature
>    Affects Versions: Trunk, 5.x
>            Reporter: Nicholas Knize
>            Priority: Minor
>         Attachments: LUCENE-6450-5x.patch, LUCENE-6450-TRUNK.patch, 
> LUCENE-6450.patch, LUCENE-6450.patch, LUCENE-6450.patch, LUCENE-6450.patch
>
>
> At the moment all spatial capabilities, including basic point based indexing 
> and querying, require the lucene-spatial module. The spatial module, designed 
> to handle all things geo, requires dependency overhead (s4j, jts) to provide 
> spatial rigor for even the most simplistic spatial search use-cases (e.g., 
> lat/lon bounding box, point in poly, distance search). This feature trims the 
> overhead by adding a new GeoPointField type to core along with 
> GeoBoundingBoxQuery and GeoPolygonQuery classes to the .search package. This 
> field is intended as a straightforward lightweight type for the most basic 
> geo point use-cases without the overhead. 
> The field uses simple bit twiddling operations (currently morton hashing) to 
> encode lat/lon into a single long term.  The queries leverage simple 
> multi-phase filtering that starts by leveraging NumericRangeQuery to reduce 
> candidate terms deferring the more expensive mathematics to the smaller 
> candidate sets.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to