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

Michael McCandless commented on LUCENE-7056:
--------------------------------------------

Hmm I don't think this is a good idea?

Lucene shouldn't try to be in the business of "exporting spatial math libraries 
for others to use".  We are a search engine, and our priorities here are to 
make spatial indexing and searching work well.

If someone wants the geo3d math implemenation, alone, they can poach/fork from 
us?

It's the same reason why we don't e.g. invest in making FSTs easier for 
outsiders to use: these are internal data structures that we use to provide 
awesome indexing/searching.

I would rather see us do the opposite: make all the geo3d math only APIs 
package private, and publicly expose only the {{Geo3DPoint}} class, for 
indexing and searching?  This gives us the most freedom to iterate on geo3d 
APIs, privately.

Also, it's still early for these new geo APIs, and it's not clear where they 
will live longish term.  E.g., we are struggling with precision/fuzzines issues 
in the 2D geo math (this is why only now we finally have a BKD/points distance 
query: see LUCENE-6698, LUCENE-6540, LUCENE-7054, etc.), so we may very well 
want to make the geo3d the primary spatial implementation instead, or a hybrid 
2D/3D solution, which well mean more shuffling.

bq. In Lucene 5 that's actually all it has

Actually 5.x also has the classes for Lucene users to index and search with 
geo3d, under the {{org.apache.lucene.bkdtree3d}} package in the {{spatial3d}} 
module.

It's just that in 6.0 most of that is folded into core, with core support for 
N-dimensional points, so the minimal (2) classes were moved under the {{geo3d}} 
package.


> Spatial3d/Geo3d should have zero runtime dependencies
> -----------------------------------------------------
>
>                 Key: LUCENE-7056
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7056
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/spatial3d
>            Reporter: David Smiley
>            Assignee: David Smiley
>             Fix For: 6.0
>
>
> This is a proposal for the "spatial3d" module to be purely about the 
> shape/geometry implementations it has.  In Lucene 5 that's actually all it 
> has.  In Lucene 6 at the moment its ~76 files have 2 classes that I think 
> should go elsewhere: Geo3DPoint and PointInGeo3DShapeQuery.  Specifically 
> lucene-spatial-extras (which doesn't quite exist yet so lucene-spatial) would 
> be a suitable place due to the dependency.   _Eventually_ I see this module 
> migrating elsewhere be it on its own or a part of something else more 
> spatial-ish.  Even if that never comes to pass, non-Lucene users who want to 
> use this module for it's geometry annoyingly have to exclude the Lucene 
> dependencies that are there because this module also contains these two 
> classes.
> In a comment I'll suggest some specifics.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to