[ 
https://issues.apache.org/jira/browse/LUCENE-7392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nicholas Knize updated LUCENE-7392:
-----------------------------------
    Attachment: LUCENE-7392.patch

Haven't updated this issue in a while so I'm posting a new patch with the 
following changes:

* Changed {{LatLonBoundingBox}} encoding to be consistent with {{LatLonPoint}}
* Removed chaos for supporting dateline crossing - this field now DOES NOT 
support dateline crossing bounding boxes
* Updated javadocs to include field limitations

The primary limitation of this field is the following:

East / West Bounding boxes that share the meridian will not be counted as 
intersects. This is due to the encoding of {{-180}} and {{180}} mapping to 
{{Integer.MIN_VALUE}} {{Integer.MAX_VALUE}}, respectively and 
{{BKDWriter.writeFieldNDims}} operating on bytes only with 
{{StringHelper.compare}}. So Western Bounding Boxes that fall at -180 will not 
be counted as intersecting with Eastern Bounding Boxes that fall at 180 since 
they are encoded as two different values.

I've thought about this a little bit, and would like to entertain a discussion 
(best done in a separate issue if felt useful) around modifying {{BKDWriter}} 
(and supporting {{IndexableField}} classes) so Points based fields can use 
custom encodings that are not necessarily byte aligned -
 as its required today. This would be an interesting feature for not just 
supporting range coordinate wrapping (like in the geo use case) but also 
supporting compressed encodings. Perhaps useful, (maybe?), for fields that 
naturally have sparse bit encodings? Just a thought. I'd like to solicit 
feedback to see if this sounds as interesting to anyone else as it does to me.

> Add point based GeoBoundingBoxField as a new RangeField type
> ------------------------------------------------------------
>
>                 Key: LUCENE-7392
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7392
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Nicholas Knize
>         Attachments: LUCENE-7392.patch, LUCENE-7392.patch, LUCENE-7392.patch
>
>
> This issue will add a new point based {{GeoBoundingBoxField}} type for 
> indexing and querying 2D or 3D Geo bounding boxes. The intent is to construct 
> this as a RangeField type and limit the first two dimensions to the lat/lon 
> geospatial bounds (at 4 bytes each like {{LatLonPoint}}, while allowing an 
> optional 8 byte ({{double}}) third dimension to serve as an altitude 
> component for indexing 3D geospatial bounding boxes.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to