Re: How to use geospatial search to find the locations within polygon
Thank u so much David & Jack for ur response. I downloaded the JTS jar file and pasted in server/lib directory. Now it's working and giving the results. Once again Thank u both of u.. -- View this message in context: http://lucene.472066.n3.nabble.com/How-to-use-geospatial-search-to-find-the-locations-within-polygon-tp4261588p4262052.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: How to use geospatial search to find the locations within polygon
The doc does indeed say "JTS... It's a JAR file that you need to put on Solr's classpath (but not via the standard solrconfig.xml mechanisms)", but that is a little vague and nonspecific. It should probably be a labeled section in the doc, like "Configuring JTS for Polygon Search", and have the spatialContextFactory property (called a "setting" for some reason there although elsewhere in the Solr doc XML attributes are referred to as properties) point to that section. The "old" wiki has some more info, but whether that is sufficient to fully configure JTS is unknown to me. -- Jack Krupansky On Sat, Mar 5, 2016 at 11:12 AM, david.w.smi...@gmail.com < david.w.smi...@gmail.com> wrote: > A Java NoClassDefFoundError of something in com.vividsolutions.jts means > you don't have JTS on your classpath. You should put the JTS jar file in > server/lib/. You can download it from maven-central. Here's a search for > JTS with the 1.14 version: > > http://search.maven.org/#artifactdetails%7Ccom.vividsolutions%7Cjts-core%7C1.14.0%7Cjar > > p.s. Nabble.com seems increasingly glitchy. I attempted to reply earlier > but Nabble returned a failure. > > On Sat, Mar 5, 2016 at 1:39 AM Pradeep Chandra [via Lucene] < > ml-node+s472066n4261824...@n3.nabble.com> wrote: > > > Thank u for your reply sirNow, I gave the ending point as starting > > point to close the polygon > > > > It is showing this error: > > > > {"error":{"msg":"java.lang.NoClassDefFoundError: > > com/vividsolutions/jts/geom/Lineal","trace":"java.lang.RuntimeException: > > java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal\n\tat > > > org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:618)\n\tat > > org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:477)\n\tat > > > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)\n\tat > > > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)\n\tat > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat > > > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat > > > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat > > > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat > > > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat > > > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat > > > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat > > > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat > > > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)\n\tat > > > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)\n\tat > > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat > > org.eclipse.jetty.server.Server.handle(Server.java:499)\n\tat > > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)\n\tat > > > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\n\tat > > > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)\n\tat > > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat > > > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat > > java.lang.Thread.run(Thread.java:745)\nCaused by: > > java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal\n\tat > > > com.spatial4j.core.shape.jts.JtsGeometry.(JtsGeometry.java:104)\n\tat > > > com.spatial4j.core.context.jts.JtsSpatialContext.makeShape(JtsSpatialContext.java:203)\n\tat > > > com.spatial4j.core.io.jts.JtsWktShapeParser.makeShapeFromGeometry(JtsWktShapeParser.java:252)\n\tat > > > com.spatial4j.core.io.jts.JtsWktShapeParser.parsePolygonShape(JtsWktShapeParser.java:133)\n\tat > > > com.spatial4j.core.io.jts.JtsWktShapeParser.parseShapeByType(JtsWktShapeParser.java:89)\n\tat > > > com.spatial4j.core.io.WktShapeParser.parseIfSupported(WktShapeParser.java:114)\n\tat > > com.spatial4j.core.io.WktShapeParser.parse(WktShapeParser.java:86)\n\tat > > > com.spatial4j.core.context.SpatialContext.readShapeFromWkt(SpatialContext.java:294)\n\tat > > > org.apache.solr.schema.AbstractSpatialFieldType.parseShape(AbstractSpatialFieldType.java:231)\n\tat > > > org.apache.solr.schema.AbstractSpatialFieldType$1.parseShape(AbstractSpatialFieldType.java:174)\n\tat > > > org.apache.lucene.spatial.query.SpatialArgsParser.parse(SpatialArgsParser.java:90)\n\tat > > > org.apache.solr.schema.AbstractSpatialFieldType.parseSpatialArgs(AbstractSpatialFieldType.java:317)\n\tat > > >
Re: How to use geospatial search to find the locations within polygon
A Java NoClassDefFoundError of something in com.vividsolutions.jts means you don't have JTS on your classpath. You should put the JTS jar file in server/lib/. You can download it from maven-central. Here's a search for JTS with the 1.14 version: http://search.maven.org/#artifactdetails%7Ccom.vividsolutions%7Cjts-core%7C1.14.0%7Cjar p.s. Nabble.com seems increasingly glitchy. I attempted to reply earlier but Nabble returned a failure. On Sat, Mar 5, 2016 at 1:39 AM Pradeep Chandra [via Lucene] < ml-node+s472066n4261824...@n3.nabble.com> wrote: > Thank u for your reply sirNow, I gave the ending point as starting > point to close the polygon > > It is showing this error: > > {"error":{"msg":"java.lang.NoClassDefFoundError: > com/vividsolutions/jts/geom/Lineal","trace":"java.lang.RuntimeException: > java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal\n\tat > org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:618)\n\tat > org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:477)\n\tat > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)\n\tat > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)\n\tat > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)\n\tat > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)\n\tat > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat > org.eclipse.jetty.server.Server.handle(Server.java:499)\n\tat > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)\n\tat > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\n\tat > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)\n\tat > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat > java.lang.Thread.run(Thread.java:745)\nCaused by: > java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal\n\tat > com.spatial4j.core.shape.jts.JtsGeometry.(JtsGeometry.java:104)\n\tat > com.spatial4j.core.context.jts.JtsSpatialContext.makeShape(JtsSpatialContext.java:203)\n\tat > com.spatial4j.core.io.jts.JtsWktShapeParser.makeShapeFromGeometry(JtsWktShapeParser.java:252)\n\tat > com.spatial4j.core.io.jts.JtsWktShapeParser.parsePolygonShape(JtsWktShapeParser.java:133)\n\tat > com.spatial4j.core.io.jts.JtsWktShapeParser.parseShapeByType(JtsWktShapeParser.java:89)\n\tat > com.spatial4j.core.io.WktShapeParser.parseIfSupported(WktShapeParser.java:114)\n\tat > com.spatial4j.core.io.WktShapeParser.parse(WktShapeParser.java:86)\n\tat > com.spatial4j.core.context.SpatialContext.readShapeFromWkt(SpatialContext.java:294)\n\tat > org.apache.solr.schema.AbstractSpatialFieldType.parseShape(AbstractSpatialFieldType.java:231)\n\tat > org.apache.solr.schema.AbstractSpatialFieldType$1.parseShape(AbstractSpatialFieldType.java:174)\n\tat > org.apache.lucene.spatial.query.SpatialArgsParser.parse(SpatialArgsParser.java:90)\n\tat > org.apache.solr.schema.AbstractSpatialFieldType.parseSpatialArgs(AbstractSpatialFieldType.java:317)\n\tat > org.apache.solr.schema.AbstractSpatialFieldType.getFieldQuery(AbstractSpatialFieldType.java:312)\n\tat > org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:757)\n\tat > org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:383)\n\tat > org.apache.solr.parser.SolrQueryParserBase.handleQuotedTerm(SolrQueryParserBase.java:560)\n\tat > org.apache.solr.parser.QueryParser.Term(QueryParser.java:403)\n\tat > org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)\n\tat > org.apache.solr.parser.QueryParser.Query(QueryParser.java:107)\n\tat > org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)\n\tat > org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)\n\tat > org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:50)\n\tat >
Re: How to use geospatial search to find the locations within polygon
Yes you're right Jack. The ref guide page on this needs more. On Fri, Mar 4, 2016 at 11:36 AM Jack Krupanskywrote: > It would be nice for the doc to say that - describe when IsWithin is and > isn't appropriate. And give some examples as well for people to copy/mimic. > > -- Jack Krupansky > > On Fri, Mar 4, 2016 at 10:20 AM, david.w.smi...@gmail.com < > david.w.smi...@gmail.com> wrote: > > > First of all, assuming this is a standard point-in-polygon situation, use > > the Intersects predicate -- with point data it's semantically the same as > > IsWithin and Intersects is much faster. I don't know why you used > > isDisjointTo in your 2nd example; maybe you want to find when they don't > > touch? Any way, one problem right away I saw is that the first point in > > the polygon is not repeated in the last. That's what the WKT spec > demands. > > > > > > On Fri, Mar 4, 2016 at 1:37 AM Pradeepchandra Mulpuru < > > prade...@infologitech.in> wrote: > > > > > Hi Sir, > > > > > > I have a question on Apache Solr Spatial search. I have a json type > data > > > of City, Latitude & Longitude. I indexed those fields with locm_place > of > > > the type location_rpt. Now I want to give a polygon as a filter query > in > > > order to get the City names located in that polygon. I don't have any > > idea > > > of doing that. > > > > > > I tried with this: > > > > > > > > > > > > http://localhost:8983/solr/loopback/select?fl=City=json=*:*=locm_place > > :"IsWithin(POLYGON((16.762467717941604 > > > 78.94775390625,16.99375545289456 78.11279296875%20,17.31917640744285 > > > 77.98095703125,17.80099604766698 78.72802734375))) distErrPct=0" > > > > > > It is showing the result like: > > > > > > > > > {"responseHeader":{"status":400,"QTime":4,"params":{"fl":"City","q":"*:*","wt":"json","fq":"locm_place:\"IsWithin(POLYGON((16.762467717941604 > > 78.94775390625, 16.99375545289456 78.11279296875 , 17.31917640744285 > > 77.98095703125 , 17.80099604766698 78.72802734375))) > > distErrPct=0\""}},"error":{"msg":"Couldn't parse shape > > 'POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > > 78.11279296875 , 17.31917640744285 77.98095703125 , 17.80099604766698 > > 78.72802734375))' because: Unknown Shape definition > > [POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > > 78.11279296875 , 17.31917640744285 77.98095703125 , > > 17.80099604...]","code":400}} > > > > > > > > > I tried with this: > > > > > > > > > http://localhost:8983/solr/loopback/select?fl=City=json=*:*=geo:%22IsDisjointTo(POLYGON((16.762467717941604%2078.94775390625,%2016.99375545289456%2078.11279296875,17.31917640744285%2077.98095703125,17.80099604766698%2078.72802734375)))%22 > > > > > > It is showing the result like: > > > > > > > > > > > > {"responseHeader":{"status":400,"QTime":21,"params":{"fl":"City","q":"*:*","wt":"json","fq":"geo:\"IsDisjointTo(POLYGON((16.762467717941604 > > 78.94775390625, 16.99375545289456 78.11279296875,17.31917640744285 > > 77.98095703125,17.80099604766698 > > 78.72802734375)))\""}},"error":{"msg":"Couldn't parse shape > > 'POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > > 78.11279296875,17.31917640744285 77.98095703125,17.80099604766698 > > 78.72802734375))' because: java.lang.IllegalArgumentException: points > must > > form a closed linestring","code":400}} > > > > > > > > > Kindly tell me what I have to change/configure. I am attaching the json > > file,schema.xml and a screenshot of Solr admin total result query. > > > > > > > > > Thanks and regards, > > > > > > M Pradeep Chandra > > > > > > -- > > Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker > > LinkedIn: http://linkedin.com/in/davidwsmiley | Book: > > http://www.solrenterprisesearchserver.com > > > -- Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker LinkedIn: http://linkedin.com/in/davidwsmiley | Book: http://www.solrenterprisesearchserver.com
Re: How to use geospatial search to find the locations within polygon
Thank u for your reply sirNow, I gave the ending point as starting point to close the polygon It is showing this error: {"error":{"msg":"java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal","trace":"java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal\n\tat org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:618)\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:477)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:499)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\n\tat org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NoClassDefFoundError: com/vividsolutions/jts/geom/Lineal\n\tat com.spatial4j.core.shape.jts.JtsGeometry.(JtsGeometry.java:104)\n\tat com.spatial4j.core.context.jts.JtsSpatialContext.makeShape(JtsSpatialContext.java:203)\n\tat com.spatial4j.core.io.jts.JtsWktShapeParser.makeShapeFromGeometry(JtsWktShapeParser.java:252)\n\tat com.spatial4j.core.io.jts.JtsWktShapeParser.parsePolygonShape(JtsWktShapeParser.java:133)\n\tat com.spatial4j.core.io.jts.JtsWktShapeParser.parseShapeByType(JtsWktShapeParser.java:89)\n\tat com.spatial4j.core.io.WktShapeParser.parseIfSupported(WktShapeParser.java:114)\n\tat com.spatial4j.core.io.WktShapeParser.parse(WktShapeParser.java:86)\n\tat com.spatial4j.core.context.SpatialContext.readShapeFromWkt(SpatialContext.java:294)\n\tat org.apache.solr.schema.AbstractSpatialFieldType.parseShape(AbstractSpatialFieldType.java:231)\n\tat org.apache.solr.schema.AbstractSpatialFieldType$1.parseShape(AbstractSpatialFieldType.java:174)\n\tat org.apache.lucene.spatial.query.SpatialArgsParser.parse(SpatialArgsParser.java:90)\n\tat org.apache.solr.schema.AbstractSpatialFieldType.parseSpatialArgs(AbstractSpatialFieldType.java:317)\n\tat org.apache.solr.schema.AbstractSpatialFieldType.getFieldQuery(AbstractSpatialFieldType.java:312)\n\tat org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:757)\n\tat org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:383)\n\tat org.apache.solr.parser.SolrQueryParserBase.handleQuotedTerm(SolrQueryParserBase.java:560)\n\tat org.apache.solr.parser.QueryParser.Term(QueryParser.java:403)\n\tat org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)\n\tat org.apache.solr.parser.QueryParser.Query(QueryParser.java:107)\n\tat org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)\n\tat org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)\n\tat org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:50)\n\tat org.apache.solr.search.QParser.getQuery(QParser.java:141)\n\tat org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:204)\n\tat org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251)\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)\n\tat org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)\n\tat org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)\n\t... 22 more\nCaused by: java.lang.ClassNotFoundException: com.vividsolutions.jts.geom.Lineal\n\tat
Re: How to use geospatial search to find the locations within polygon
It would be nice for the doc to say that - describe when IsWithin is and isn't appropriate. And give some examples as well for people to copy/mimic. -- Jack Krupansky On Fri, Mar 4, 2016 at 10:20 AM, david.w.smi...@gmail.com < david.w.smi...@gmail.com> wrote: > First of all, assuming this is a standard point-in-polygon situation, use > the Intersects predicate -- with point data it's semantically the same as > IsWithin and Intersects is much faster. I don't know why you used > isDisjointTo in your 2nd example; maybe you want to find when they don't > touch? Any way, one problem right away I saw is that the first point in > the polygon is not repeated in the last. That's what the WKT spec demands. > > > On Fri, Mar 4, 2016 at 1:37 AM Pradeepchandra Mulpuru < > prade...@infologitech.in> wrote: > > > Hi Sir, > > > > I have a question on Apache Solr Spatial search. I have a json type data > > of City, Latitude & Longitude. I indexed those fields with locm_place of > > the type location_rpt. Now I want to give a polygon as a filter query in > > order to get the City names located in that polygon. I don't have any > idea > > of doing that. > > > > I tried with this: > > > > > > > http://localhost:8983/solr/loopback/select?fl=City=json=*:*=locm_place > :"IsWithin(POLYGON((16.762467717941604 > > 78.94775390625,16.99375545289456 78.11279296875%20,17.31917640744285 > > 77.98095703125,17.80099604766698 78.72802734375))) distErrPct=0" > > > > It is showing the result like: > > > > > {"responseHeader":{"status":400,"QTime":4,"params":{"fl":"City","q":"*:*","wt":"json","fq":"locm_place:\"IsWithin(POLYGON((16.762467717941604 > 78.94775390625, 16.99375545289456 78.11279296875 , 17.31917640744285 > 77.98095703125 , 17.80099604766698 78.72802734375))) > distErrPct=0\""}},"error":{"msg":"Couldn't parse shape > 'POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > 78.11279296875 , 17.31917640744285 77.98095703125 , 17.80099604766698 > 78.72802734375))' because: Unknown Shape definition > [POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > 78.11279296875 , 17.31917640744285 77.98095703125 , > 17.80099604...]","code":400}} > > > > > > I tried with this: > > > > > http://localhost:8983/solr/loopback/select?fl=City=json=*:*=geo:%22IsDisjointTo(POLYGON((16.762467717941604%2078.94775390625,%2016.99375545289456%2078.11279296875,17.31917640744285%2077.98095703125,17.80099604766698%2078.72802734375)))%22 > > > > It is showing the result like: > > > > > > > {"responseHeader":{"status":400,"QTime":21,"params":{"fl":"City","q":"*:*","wt":"json","fq":"geo:\"IsDisjointTo(POLYGON((16.762467717941604 > 78.94775390625, 16.99375545289456 78.11279296875,17.31917640744285 > 77.98095703125,17.80099604766698 > 78.72802734375)))\""}},"error":{"msg":"Couldn't parse shape > 'POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > 78.11279296875,17.31917640744285 77.98095703125,17.80099604766698 > 78.72802734375))' because: java.lang.IllegalArgumentException: points must > form a closed linestring","code":400}} > > > > > > Kindly tell me what I have to change/configure. I am attaching the json > file,schema.xml and a screenshot of Solr admin total result query. > > > > > > Thanks and regards, > > > > M Pradeep Chandra > > > > -- > Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker > LinkedIn: http://linkedin.com/in/davidwsmiley | Book: > http://www.solrenterprisesearchserver.com >
Re: How to use geospatial search to find the locations within polygon
First of all, assuming this is a standard point-in-polygon situation, use the Intersects predicate -- with point data it's semantically the same as IsWithin and Intersects is much faster. I don't know why you used isDisjointTo in your 2nd example; maybe you want to find when they don't touch? Any way, one problem right away I saw is that the first point in the polygon is not repeated in the last. That's what the WKT spec demands. On Fri, Mar 4, 2016 at 1:37 AM Pradeepchandra Mulpuru < prade...@infologitech.in> wrote: > Hi Sir, > > I have a question on Apache Solr Spatial search. I have a json type data > of City, Latitude & Longitude. I indexed those fields with locm_place of > the type location_rpt. Now I want to give a polygon as a filter query in > order to get the City names located in that polygon. I don't have any idea > of doing that. > > I tried with this: > > > http://localhost:8983/solr/loopback/select?fl=City=json=*:*=locm_place:"IsWithin(POLYGON((16.762467717941604 > 78.94775390625,16.99375545289456 78.11279296875%20,17.31917640744285 > 77.98095703125,17.80099604766698 78.72802734375))) distErrPct=0" > > It is showing the result like: > > {"responseHeader":{"status":400,"QTime":4,"params":{"fl":"City","q":"*:*","wt":"json","fq":"locm_place:\"IsWithin(POLYGON((16.762467717941604 > 78.94775390625, 16.99375545289456 78.11279296875 , 17.31917640744285 > 77.98095703125 , 17.80099604766698 78.72802734375))) > distErrPct=0\""}},"error":{"msg":"Couldn't parse shape > 'POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 78.11279296875 > , 17.31917640744285 77.98095703125 , 17.80099604766698 78.72802734375))' > because: Unknown Shape definition [POLYGON((16.762467717941604 > 78.94775390625, 16.99375545289456 78.11279296875 , 17.31917640744285 > 77.98095703125 , 17.80099604...]","code":400}} > > > I tried with this: > > http://localhost:8983/solr/loopback/select?fl=City=json=*:*=geo:%22IsDisjointTo(POLYGON((16.762467717941604%2078.94775390625,%2016.99375545289456%2078.11279296875,17.31917640744285%2077.98095703125,17.80099604766698%2078.72802734375)))%22 > > It is showing the result like: > > > {"responseHeader":{"status":400,"QTime":21,"params":{"fl":"City","q":"*:*","wt":"json","fq":"geo:\"IsDisjointTo(POLYGON((16.762467717941604 > 78.94775390625, 16.99375545289456 78.11279296875,17.31917640744285 > 77.98095703125,17.80099604766698 > 78.72802734375)))\""}},"error":{"msg":"Couldn't parse shape > 'POLYGON((16.762467717941604 78.94775390625, 16.99375545289456 > 78.11279296875,17.31917640744285 77.98095703125,17.80099604766698 > 78.72802734375))' because: java.lang.IllegalArgumentException: points must > form a closed linestring","code":400}} > > > Kindly tell me what I have to change/configure. I am attaching the json > file,schema.xml and a screenshot of Solr admin total result query. > > > Thanks and regards, > > M Pradeep Chandra > > -- Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker LinkedIn: http://linkedin.com/in/davidwsmiley | Book: http://www.solrenterprisesearchserver.com