lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon H (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SOLR-7439) Large spatial query with irregular polygon yields incorrect results
Date Wed, 22 Apr 2015 11:30:59 GMT

     [ https://issues.apache.org/jira/browse/SOLR-7439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jon H updated SOLR-7439:
------------------------
    Summary: Large spatial query with irregular polygon yields incorrect results  (was: Large
spatial query with high precision yields incorrect results)

> Large spatial query with irregular polygon yields incorrect results
> -------------------------------------------------------------------
>
>                 Key: SOLR-7439
>                 URL: https://issues.apache.org/jira/browse/SOLR-7439
>             Project: Solr
>          Issue Type: Bug
>          Components: spatial
>    Affects Versions: 4.10.3
>         Environment: Windows 7, Oracle JDK 1.8.0_40
>            Reporter: Jon H
>
> I've noticed that queries with polygons that span more than 180 degrees can be interpreted
as going the opposite way around the earth when the points have "many" decimal places.
> Here are the relevant schema details. Note I am using ccwRect for datelineRule.
> {quote}
> <field name="geo" type="location_rpt" indexed="true" stored="false"/>
> <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
> spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
> geo="true" distErrPct="0.1" maxDistErr="0.000009" units="degrees"
> datelineRule="ccwRect" normWrapLongitude="true" autoIndex="true"/>
> {quote}
> JTS v1.10 jar has been added to the classpath.
> A simple test case that shows the problem:
> I have 3 documents indexed each with one of the following polygon values set for the
"geo" field.
> {quote}
> POLYGON ((-0.70312499989791 8.0592296260867, 13.359374998139 8.0592296260867, 13.359374998139
21.616579333871, -0.70312499989791 21.616579333871, -0.70312499989791 8.0592296260867))
> POLYGON ((120.58593748322 13.923403895824, 132.53906248155 13.923403895824, 132.53906248155
25.165173365383, 120.58593748322 25.165173365383, 120.58593748322 13.923403895824))
> POLYGON ((-133.24218748145 0.35156029394437, -121.99218748302 0.35156029394437, -121.99218748302
11.523087505283, -133.24218748145 11.523087505283, -133.24218748145 0.35156029394437))
> {quote}
> When I execute this query, I get only 1 hit:
> {quote}
> geo:"Intersects(POLYGON((-136.40624998100992 -41.50857729267501,129.02343748203592 -41.50857729267501,129.02343748203583
58.4477327986157,-136.40624998100992 58.4477327986157,-136.40624998100992 -41.50857729267501)))
distErrPct=0.0"
> {quote}
> Now if I run this query where a took off a couple decimal places from each point, I get
3 hits (this is what I would expect):
> {quote}
> geo:"Intersects(POLYGON((-136.406249981009 -41.508577292675,129.023437482035 -41.508577292675,129.023437482035
58.44773279861,-136.406249981009 58.44773279861,-136.406249981009 -41.508577292675))) distErrPct=0.0"
> {quote}
> It looks like the first query is actually doing the opposite of what I intend - it's
being interpreted as the smaller area going the opposite way around the earth. I may be able
alter my queries slightly so that I get the desired behavior but it seems like these queries
should give the same results, correct?



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

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


Mime
View raw message