Thanks for the detailed answer David, that helps a lot to understand!
Best Regards
Jens
P.S. Currently the only search we are doing on the polygon is
Contains(POINT(x,y))
Am 29.05.2018 um 13:30 schrieb David Smiley:
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
<mailto: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 <tel:+49%204307%2083580>
E. jens.vie...@vitec.com <mailto:jens.vie...@vitec.com>
_http://www.vitec.com_____
__
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
--
Fwd: so, nun aber...
***
*
*Jens Viebig***
Software Development
MAM Products
T. +49-(0)4307-8358-0
E. jens.vie...@vitec.com
_http://www.vitec.com_____
__
VITEC_logo_for_email_signature__
--
VITEC GmbH, 24223 Schwentinental
Geschäftsführer/Managing Director: Philippe Wetzel
HRB Plön 1584 / Steuernummer: 1929705211 / VATnumber: DE134878603