You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Robert Muir (JIRA)" <ji...@apache.org> on 2019/03/29 17:34:00 UTC

[jira] [Commented] (LUCENE-8746) Make EdgeTree (aka ComponentTree) support different type of components

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

Robert Muir commented on LUCENE-8746:
-------------------------------------

I agree, this thing kinda evolved: starting from a single polygon, to realizing that it really needed to handle multipolygon case directly (this is more than boolean "or" for cases like Russia where there are shit-tons), to now also being used for shapes rather than just point-in-polygon.

Its ripe for refactoring: pretty sure I even created the initial mess with some confusing method names like {{componentXYZ()}}

I didn't properly review the source code, but looked over the high level PR, +1

> Make EdgeTree (aka ComponentTree) support different type of components
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-8746
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8746
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Ignacio Vera
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently the class {{EdgeTree}} is a bit confusing as it is in reality a tree of components. The inner class {{Edge}} is the one that builds a tree of edges which is used by Polygon2D and Line2D to represent their structure.
> Here is proposed:
> 1) Create a new class called {{ComponentTree}} which is in fact the current {{EdgeTree}}
> 2) Modify {{EdgeTree}} to be in fact the inner class Edge
> 3) Extract a {{Component}} interface so we can have different types of components in the same tree. This allow us to support heterogeneous trees of components.
> 4) Make {{Polygon2D}} and {{Line2D}} instance of the component interface.
> 4) With this change, {{LatLonShapePolygonQuery}} and {{LatLonShapeLineQuery}} can be replaced with one {{LatLonShapeComponentQuery.}}  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org