Hello,

To have Solr be tolerant to invalid polygons, use the “validationRule”
attribute on the field type definition.  This setting and some others are
documented here:
https://locationtech.github.io/spatial4j/apidocs/com/spatial4j/core/context/jts/JtsSpatialContextFactory.html
Try using repairBuffer0.

I fixed the links in the ref guide which were recently made out of date,
and I added a use of validationRule to the example:
https://cwiki.apache.org/confluence/display/solr/Spatial+Search

~ David

On Tue, Dec 8, 2015 at 1:04 AM Vishnu perumal <vis...@knackforge.com> wrote:

> Hi,
>
> I’m using Solr 4.10.2 with an up to date version of JTS and spatial4j. As
> field type in my schema.xml i’m using “location_rpt” like the description
> in the documentation. (
> http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4#How_to_Use)
>
> location_rpt field type setup:
>
> <fieldType name="location_rpt"
> class="solr.SpatialRecursivePrefixTreeFieldType"
>
>
> spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
>          distErrPct="0.025"
>          maxDistErr="0.001"
>          units="degrees" />
>
>
> <field name="latlon_rpt"  type="location_rpt"  indexed="true"
> stored="true"  multiValued="true" />
>
> My filter query like this :
>
> latlon_rpt:"INTERSECTS (POLYGON((16.243972778320312 48.27016879304729,
> 16.411170959472656 48.268340583150504, 16.44275665283203 48.19058119922813,
> 16.32396697998047 48.15921534239267,16.243972778320312 48.27016879304729)))
>
>
> Everything works fine. My problem is when i am trying to use a more complex
> polygon (self-intersecting) Solr only shows an Error like this:
>
> "Couldn't parse shape 'POLYGON((-87.525029 41.676998,-87.508635
> 41.680781,-87.494559 41.681037,-87.485719 41.680332,-87.475333
> 41.677447,-87.465205 41.675011,-87.443232 41.667574,-87.434992
> 41.658084,-87.443876 41.653338,-87.435615 41.646604,-87.43216
> 41.641409,-87.432332 41.630857,-87.432374 41.621907,-87.432418
> 41.611289,-87.433083 41.606523,-87.432718 41.600475,-87.432846
> 41.58709,-87.433018 41.577716,-87.432675 41.565902,-87.424092
> 41.560892,-87.423147 41.548814,-87.425594 41.540271,-87.439713
> 41.530443,-87.471643 41.520933,-87.493787 41.517463,-87.525721
> 41.516847,-87.52572 41.570552,-87.536797 41.574096,-87.545295
> 41.577723,-87.549801 41.577852,-87.568684 41.57737,-87.568727
> 41.587835,-87.56907 41.639941,-87.524953 41.625187,-87.525471
> 41.648549,-87.539761 41.6481,-87.539751 41.643562,-87.543345
> 41.646272,-87.548001 41.650056,-87.5362 41.650089,-87.533582
> 41.650056,-87.533625 41.648292,-87.525492 41.648549,-87.525029 41.676998))'
> because: com.spatial4j.core.exception.InvalidShapeException:
> Self-intersection at or near point (-87.52917652682729, 41.648432570220756,
> NaN)","code":400}
>
>
> Are there any workarounds to get self-intersecting polygon query to work?
>
-- 
Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker
LinkedIn: http://linkedin.com/in/davidwsmiley | Book:
http://www.solrenterprisesearchserver.com

Reply via email to