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]

Reply via email to