lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Alexandrow <paul.alexand...@kodama.at>
Subject Spatial indexing: IndexOutOfBounds in QuadPrefixTree
Date Thu, 14 Feb 2013 18:22:30 GMT
Hi List,

I've encountered this problem using Solr (4.1.0), but as far as I could 
trace it, I think it belongs to this list.

I have the following field type in my schema:

<fieldType
       name="opening_hours"
       class="solr.SpatialRecursivePrefixTreeFieldType"
       geo="false"
       worldBounds="0 0 1148327 1148327"
       units="degrees"
/>

As you can see, I'm using spatial indexing to store opening hours 
(1148327 are epoch hours to a reasonable limit for my usecase) - 
however, this is probably not important to my problem.

The problem is, that it seems I can't add one special coordinate into 
the index, which is [372294 372306]. I couldn't figure out what makes 
these coordinates so special, neither could I find out if there are any 
other combinations that don't work.

I could however find out, that the reason for the IOOB-Ex is, that in 
QuadPrefixTree.java the checkBattenberg() method does not add a QuadCell 
to the matches, leaving the matches at zero length (which is either the 
problem itself, or the problem is, that zero-length is not checked in 
getNode()). Unfortunately I don't understand checkBattenberg() well 
enough to delve any further - so I'm stuck.

Any help is very much appreciated, thanks,
Paul

----
Find below a stacktrace of the Exception:

SEVERE: org.apache.solr.common.SolrException: ERROR: [doc=222] Error 
adding field 'opening_hours'='372294 372306' msg=Index: 0, Size: 0
         at 
org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:318)
         at 
org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
         at 
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:201)
         at 
org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
         at 
org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
         at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:455)
         at 
org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:591)
         at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:350)
         at 
org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100)
         at 
org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
         at 
org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
         at 
org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
         at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
         at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1816)
         at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:448)
         at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:269)
         at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
         at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
         at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
         at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
         at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
         at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
         at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
         at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
         at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
         at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
         at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
         at org.eclipse.jetty.server.Server.handle(Server.java:365)
         at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
         at 
org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
         at 
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
         at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
         at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
         at 
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
         at 
org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
         at 
org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
         at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
         at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
         at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
         at java.util.ArrayList.rangeCheck(ArrayList.java:604)
         at java.util.ArrayList.get(ArrayList.java:382)
         at 
org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.getNode(QuadPrefixTree.java:146)
         at 
org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getNodesAltPoint(SpatialPrefixTree.java:201)
         at 
org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.getNodes(QuadPrefixTree.java:162)
         at 
org.apache.lucene.spatial.prefix.PrefixTreeStrategy.createIndexableFields(PrefixTreeStrategy.java:127)
         at 
org.apache.lucene.spatial.prefix.PrefixTreeStrategy.createIndexableFields(PrefixTreeStrategy.java:122)
         at 
org.apache.solr.schema.AbstractSpatialFieldType.createFields(AbstractSpatialFieldType.java:123)
         at 
org.apache.solr.schema.AbstractSpatialFieldType.createFields(AbstractSpatialFieldType.java:63)
         at 
org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:193)
         at 
org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:269)
         ... 41 more


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


Mime
View raw message