Indexing non-point shapes close to the poles doesn't scale [LUCENE-5056]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
From: Hal Deadman
We are seeing an issue where certain shapes are causing Solr to use up all available heap space when a record with one of those shapes is indexed. We were indexing polygons where we had the points going clockwise instead of counter-clockwise and the shape would be so large that we would run out of memory. We fixed those shapes but we are seeing this circle eat up about 700MB of memory before we get an OutOfMemory error (heap space) with a 1GB JVM heap.
Circle(3.0 90 d=0.0499542757922153)
Google Earth can't plot that circle either, maybe it is invalid or too close to the north pole due to the latitude of 90, but it would be nice if there was a way for shapes to be validated before they cause an OOM error.
The objects (4.5 million) are all GeohashPrefixTree$GhCell objects in an ArrayList owned by PrefixTreeStrategy$CellTokenStream.
Is there anyway to have a max number of cells in a shape before it is considered too large and is not indexed? Is there a geo library that could validate the shape as being reasonably sized and bounded before it is processed?
We are currently using Solr 4.1.
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />

---
Migrated from [LUCENE-5056](https://issues.apache.org/jira/browse/LUCENE-5056) by Hal Deadman, updated May 09 2016
Attachments: [indexed circle close to the pole.png](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-5056/indexed%20circle%20close%20to%20the%20pole.png)
Linked issues:
- [SOLR-5429](https://issues.apache.org/jira/browse/SOLR-5429)
Contributor guide
Assessment
This issue has not been assessed yet.