Hello Jens, With solr.RptWithGeometrySpatialField, you always get an accurate result thanks to the "WithGeometry" part. The "Rpt" part is a grid index, and most of the parameters pertain to that. maxDistErr controls the highest resolution grid. No shape will be indexed to higher resolutions than this, though may be courser resolutions dependent on distErrPct. The configuration you chose initially (that turned out to be slow for you) was a meter, and then you changed it to a kilometer and got fast indexing results. I figure the size of your indexed shapes are on average a kilometer in size (give or take an order of magnitude). It's hard to guess how your query shapes compare to your indexed shapes as there are multiple possibilities that could yield similar query performance when changing maxDistErr so much.
The bottom line is that you should dial up maxDistErr as much as you can get away with it -- which is as long as query performance is good. So you did the right thing :-). That number will probably be a distance somewhat less than the average indexed shape diameter, or average query shape diameter, whichever is greater. Perhaps 1/10th smaller; if I had to pick. The default setting, I think a meter, is probably not a good default for this field type. Note you could also try increasing distErrPct some, maybe to as much as .25, though I wouldn't go much higher., as it may yield gridded shapes that are so course as to not have interior cells. Depending on what your query shapes typically look like and indexed shapes relative to each other, that may be significant or may not be. If the indexed shapes are often much larger than your query shape then it's significant. ~ David On Fri, May 25, 2018 at 6:59 AM Jens Viebig <jens.vie...@vitec.com> wrote: > Hello, > > we are indexing a polygon with 4 points (non-rectangular, field-of-view of > a camera) in a RptWithGeometrySpatialField alongside some more fields, to > perform searches that check if a point is within this polygon > > We started using the default configuration found in several examples > online: > > <fieldType name="location_grpt" class="solr.RptWithGeometrySpatialField" > > spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory" > geo="true" distErrPct="0.15" maxDistErr="0.001" > distanceUnits="kilometers" /> > > We discovered that with this setting the indexing (soft commit) speed is > very slow > For 10000 documents it takes several minutes to finish the commit > > If we disable this field, indexing+soft commit is only 3 seconds for 10000 > docs, > if we set maxDistErr to 1, indexing speed is at around 5 seconds, so a > huge performance gain against the several minutes we had before > > I tried to find out via the documentation whats the impact of "maxDistErr" > on search results but didn't quite find an in-depth explanation > From our tests we did, the search results still seem to be very accurate > even if the covered space of the polygon is less then 1km and search speed > did not suffer. > > So i would love to learn more about the differences on having > maxDistErr="0.001" vs maxDistErr="1" on a RptWithGeometrySpatialField and > what problems could we run into with the bigger value > > Thanks > Jens > > > > > *Jens Viebig* > > Software Development > > MAM Products > > > T. +49-(0)4307-8358-0 <+49%204307%2083580> > > E. jens.vie...@vitec.com > > *http://www.vitec.com <http://www.vitec.com>* > > > > [image: VITEC_logo_for_email_signature] > > > > -- > > VITEC GmbH, 24223 Schwentinental > > Geschäftsführer/Managing Director: Philippe Wetzel > HRB Plön 1584 / Steuernummer: 1929705211 / VATnumber: DE134878603 > > > -- Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker LinkedIn: http://linkedin.com/in/davidwsmiley | Book: http://www.solrenterprisesearchserver.com