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

Chris Male commented on LUCENE-4388:
------------------------------------

bq. The reasoning is similar to how a standard DistanceValueSource could then 
exist. For a makeFilter / makeQuery, there could be a standard ShapeFilter that 
consults makeShapeValues to intersect with the query shape. Of course, it 
should be preceded by a bbox filter or something similar.

That's going to be so slow.  Iterating over every Shape of every Document to 
see if intersects? That harks back to WildcardQuery performance of old.  Even 
with a BBox, you could have 100,000 points within a city.  I don't think we 
should ever support this.  If a user wants to create it themselves then fine, 
but we should be striving for performance.

bq. I'm not sure what you mean. But a problem with the other approach (forcing 
MultiShape for createFields) is that it would make Solr support difficult, 
perhaps requiring a UpdateRequestProcessor to join separate field values into 
one. But even putting that aside, I don't think use of a MultiShape needs to be 
forced, but it should be supported by the Strategy if it declares that it 
handles multi-valued shapes.

Given this issue is about ShapeValues, I'm talking about retrieving Shapes 
through ShapeValues, not about indexing.  What I was saying is given the 
ShapeValues interface:

{code}
S shape(int docId, IndexReader reader);
{code}

We need to decide what S is going to be.  If S is always Shape then the 
consumer would need to check if the actual value returned was a MultiShape or 
not, in order to retrieve the multiple Shapes.  If S was always MultiShape, 
then the ShapeValues impl would need to return a MultiShape even when there 
might only be one Shape associated with the given docId.  

This isn't a blocking problem, I was merely suggesting that we need to think 
through the use cases we want to support and how MultiShape fits in.
                
> ShapeMatcher and ShapeValues
> ----------------------------
>
>                 Key: LUCENE-4388
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4388
>             Project: Lucene - Core
>          Issue Type: New Feature
>          Components: modules/spatial
>            Reporter: David Smiley
>         Attachments: LUCENE-4388_ShapeValues_and_ShapeMatcher.patch
>
>
> This patch provides two key interfaces: ShapeMatcher and ShapeValues.  The 
> ShapeMatcher concept is borrowed from [~ryantxu]'s JtsGeoStrategy which has a 
> similar GeometryTester.  ShapeValues is basically a 
> ValueSource/FunctionValues for shapes.  This isn't working; I didn't modify 
> any existing classes.
> I haven't completely thought this through but a SpatialStrategy might expose 
> a makeShapeValues(IndexReader) and/or makeCenterShapeValues(IndexReader) (the 
> latter is the center points of indexed data).  A generic Distance ValueSource 
> could easily be implemented in terms of makeCenterShapeValues().  And a 
> strategy could support any query shape simply by implementing 
> makeShapeValues().
> I've been thinking about how the API handles strategies supporting indexing 
> multiple shapes and I wonder if that could happen simply via a new 
> MultiShape<Shape>.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to