[ 
https://issues.apache.org/jira/browse/LUCENE-4922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14104962#comment-14104962
 ] 

Varun  V Shenoy edited comment on LUCENE-4922 at 8/21/14 2:28 AM:
------------------------------------------------------------------

As my GSOC project, I have implemented a spatial prefix tree with the above 
mentioned features. This tree, named "FlexPrefixTree" has the following 
features.
- FPT performs 25% faster for circular queries and 36% faster for rectangular 
queries compared to QuadTree. 110% faster for circular queries and 70% faster 
for rectangular queries compared to GeoHashPrefixTree. This is for 
approximately 1m precision.
- The implementation should be easy to adapt to a future integer based spatial 
application when floating point isn’t desired.
- Very compact index sizes are possible. Upto 14% lessar than GeoHashPrefixTree 
and 60% lessar than QuadPrefixTree implementations.
- Flexible trade-offs between index size and search speed. Variable number of 
sub-cells allows us to achieve very small index sizes.
- FPT internally uses int, to speed up spatial calculations.
- Due to reuse of a FlexCell per level, BytesRef per FPT, Rectangle shape per 
level, FlexPrefixTreeIterator per level and compact index sizes, we could 
achieve upto 48% reduction in average used memory and 38% in average total used 
memory.



was (Author: varunshenoy):
As my GSOC project, I have implemented a spatial prefix tree with the above 
mentioned features. This tree, named "FlexPrefixTree" has the following 
features.
- FPT performs 25% faster for circular queries and 36% faster for rectangular 
queries.
- The implementation should be easy to adapt to a future integer based spatial 
application when floating point isn’t desired.
- Very compact index sizes are possible. Upto 14% lessar than GeoHashPrefixTree 
and 60% lessar than QuadPrefixTree implementations.
- Flexible trade-offs between index size and search speed. Variable number of 
sub-cells allows us to achieve very small index sizes.
- FPT internally uses int, to speed up spatial calculations.
- Due to reuse of a FlexCell per level, BytesRef per FPT, Rectangle shape per 
level, FlexPrefixTreeIterator per level and compact index sizes, we could 
achieve upto 48% reduction in average used memory and 38% in average total used 
memory.


> A SpatialPrefixTree based on the Hilbert Curve and variable grid sizes
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-4922
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4922
>             Project: Lucene - Core
>          Issue Type: New Feature
>          Components: modules/spatial
>            Reporter: David Smiley
>            Assignee: David Smiley
>              Labels: gsoc2014
>         Attachments: HilbertConverter.zip
>
>
> 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.



--
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