David Smiley created LUCENE-5608:
------------------------------------
Summary: SpatialPrefixTree API refactor
Key: LUCENE-5608
URL: https://issues.apache.org/jira/browse/LUCENE-5608
Project: Lucene - Core
Issue Type: Improvement
Components: modules/spatial
Reporter: David Smiley
Assignee: David Smiley
Fix For: 4.9, 5.0
This is a refactor of the SpatialPrefixTree spatial API, in preparation for
more SPT implementations on the near horizon. These are fairly internal APIs;
SpatialExample.java didn't have to change, nor the Solr adapters, and I doubt
ES would have to either.
API changes:
* SpatialPrefixTree & Cell had a fairly significant make-over. The existing
implementations for Geohash & Quad have been made to subclass LegacyPrefixTree
& LegacyCell shim's, and otherwise had very few changes (performance _should_
be the same). Cell is now an interface.
* New CellIterator which is an Iterator<Cell>. Includes 3 implementations.
* PrefixTreeStrategy.simplifyIndexedCells was renamed to pruneLeafyBranches and
moved to RPT and made toggle'able with a setter. It's going to be removed in
the future but for the time being it remains a useful optimization.
* RPT's pointsOnly & multiOverlappingIndexedShapes options now have setters.
Future:
* The AbstractVisitingPrefixTreeFilter (used by RPT's Intersects, Within,
Disjoint) really should be refactored to use the new CellIterator API as it
will reduce the amount of code and should make the code easier to follow since
it would be based on a well-knon design-pattern (an iterator).
I wish I had done this as a series of commits on a GitHub branch; ah well.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]