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

Jon H commented on SOLR-7439:
-----------------------------

I now realize what I've done by truncating the points a couple decimal places 
for the second query is make a polygon that is a north oriented rectangle. I'm 
guess that has something to do with the problem.

> Large spatial query with high precision 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-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to