Skip to content

A SpatialPrefixTree based on the Hilbert Curve and variable grid sizes [LUCENE-4922] #5987

@asfimport

Description

@asfimport

My wish-list for an ideal SpatialPrefixTree has these properties:

  • Hilbert Curve ordering
  • Variable grid size per level (ex: 256 at the top, 64 at the bottom, 16 for all in-between)
  • Compact binary encoding (so-called "Morton number")
  • Works for geodetic (i.e. lat & lon) and non-geodetic

Some bonus wishes for use in geospatial:

  • Use an equal-area projection such that each cell has an equal area to all others at the same level.
  • When advancing a grid level, if a cell's width is less than half its height. then divide it as 4 vertically stacked instead of 2 by 2. The point is to avoid super-skinny cells which occurs towards the poles and degrades performance.

All of this requires some basic performance benchmarks to measure the effects of these characteristics.


Migrated from LUCENE-4922 by David Smiley (@dsmiley), 2 votes, updated Aug 22 2014
Attachments: HilbertConverter.zip, LUCENE-4922.patch

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions