lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicholas Knize (JIRA)" <>
Subject [jira] [Updated] (LUCENE-7392) Add point based GeoBoundingBoxField as a new RangeField type
Date Fri, 25 Aug 2017 21:23:00 GMT


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 {{}}.
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

> Add point based GeoBoundingBoxField as a new RangeField type
> ------------------------------------------------------------
>                 Key: LUCENE-7392
>                 URL:
>             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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message