You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "David Smiley (JIRA)" <ji...@apache.org> on 2012/12/06 20:11:09 UTC
[jira] [Updated] (LUCENE-4594) Spatial PrefixTreeStrategy shouldn't
index center-points with shapes together
[ https://issues.apache.org/jira/browse/LUCENE-4594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Smiley updated LUCENE-4594:
---------------------------------
Attachment: LUCENE-4594__PrefixTreeStrategy_should_not_index_center_points.patch
Attached is a patch. Pretty simple as it just removes the undesired behavior.
Back compat CHANGES.txt entry:
{noformat}
* LUCENE-4594: Spatial PrefixTreeStrategy no longer indexes center points of
non-point shapes. If you want to call makeDistanceValueSource() based on
shape centers, you need to do this yourself in another spatial field.
(David Smiley)
{noformat}
Bug CHANGES.txt entry:
{noformat}
* LUCENE-4594: Spatial PrefixTreeStrategy would index center-points in addition
to the shape to index if it was non-point, in the same field. But sometimes
the center-point isn't actually in the shape (consider a LineString), and for
highly precise shapes it could cause makeDistanceValueSource's cache to load
parts of the shape's boundary erroneously too. So center points aren't
indexed any more; you should use another spatial field. (David Smiley)
{noformat}
If there are no objections or discussion then I intend to commit this Monday.
> Spatial PrefixTreeStrategy shouldn't index center-points with shapes together
> -----------------------------------------------------------------------------
>
> Key: LUCENE-4594
> URL: https://issues.apache.org/jira/browse/LUCENE-4594
> Project: Lucene - Core
> Issue Type: Bug
> Components: modules/spatial
> Affects Versions: 4.0, 5.0
> Reporter: David Smiley
> Assignee: David Smiley
> Fix For: 4.1, 5.0
>
> Attachments: LUCENE-4594__PrefixTreeStrategy_should_not_index_center_points.patch
>
>
> The Spatial PrefixTreeStrategy will index the center-point of a non-point shape it is given to index, in addition to the shape itself of course. The rationale was that this point could be picked up by PointPrefixTreeFieldCacheProvider for distance/sorting. However this approach is buggy since the distinction of grid cells between the center point and the shape itself is lost when the shape gets indexed down to max-levels precision -- each grid cell therein appears to be another point that needs to be brought into memory. It's also possible that the shape is a LineString or some other non-trivial shape in which its center point isn't actually in the shape.
> Even if you knew this problem would never happen, I think you're better off indexing center points into another spatial field if you want them. Perhaps arguably this strategy could do that internally? Wether or not that ends up happening, I just want to remove the problematic behavior now.
--
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-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org