For the
system property route, do you mean set it on geoserver?
If so then that did not work.
For the
second option I’m not directly querying the accumulo
stack, I’m doing it via geoserver so I do not think I can
add that hint.
What I do
know is 1.2.0 dev system returns the correct number of
matches with the WFS response. The 1.2.2 based system is
returning the total number of features regardless of the
actual query. I didn’t upgrade the 1.2.0 dev system but I
bet as soon as I do it no longer returns a correct count.
When I say a different number the WFS request matched 3
records/features.
On the 1.2.0
based system for the same data I had numberMatched=”3”
but for the 1.2.2 based system it had
numberMatched=”1508503” (for resultType=hits)
Same data
set, same query:
CQL_FILTER=(BBOX(pickupLocation,
-73.82473468780518,40.82369327545166,-73.81924152374268,40.828328132629395,
'EPSG:4326') AND (Total_amount >=1 AND Total_amount
<=5))
With
outputFormat=json:
1.2.0 gave field "totalFeatures":
3
1.2.2 gave field “totalFeatures”: 1508503
Diane
Hi Diane,
Most likely it is due to getCount being called on the
feature collection being returned. Since GeoMesa is
streaming data from accumulo, in order to calculate an exact
count we essentially have to run the query twice. Because of
this, we return a fake count, or in the upcoming 1.2.3 an
estimated count.
Since sometimes the exact count is important, we have two
ways to force the counting:
1. Set the system property "geomesa.force.count" to "true"
to force exact counting for all queries
2. For individual queries, set a query hint using the key
org.locationtech.geomesa.accumulo.index.QueryHints.EXACT_COUNT
and the value of Boolean.TRUE
I believe this behavior was the same in 1.2.0 though...
Could you try one of the above and see if it resolves your
problem?
Thanks,
Emilio
On 06/23/2016 01:10 PM, Diane Griffith
wrote:
We had upgraded to GeoMesa 1.2.2 in
order to fix the ability to combine IN parameters in a cql
call and get proper results. But I did leave one
environment set to GeoMesa 1.2.0.
What we noticed recently when finally
hooking paging is that the WFS calls (version 2.0.0) we
issued would return the correct number of results given
the CQL_FILTER (that would hold a bbox as well as other
cql filters) but the value in numberMatched was the total
number of features for the feature type specified not the
number of results that would match the CQL_FILTER. So we
would indicate there were more pages available for the
user than actual number of results.
I also tried testing where I just sent
a BBOX parameter instead of combining that with the
cql_filter and it was behaving the same. WFS responses
hooked to GeoMesa 1.2.0 indicated the correct number but
WFS responses hooked to GeoMesa 1.2.2 were reporting the
total number of features for the specified feature type
not the number of features that matched the bbox specified
for that feature type.
I looked at the queries logged in
accumulo and they looked the same on quick review. I
also looked at the call logged by GeoServer and it looked
the same as well.
I was trying to find where in the code
it set the numberMatched field for the WFS 2.0.0 response
but I hadn’t found that yet.
I can upgrade the old environment but I
believe once I do that it will behave the same and no
longer give correct numberMatched values.
I compared JDK versions of the servers,
geoserver versions, that they both have native JAI and it
all matches. Also both appear to use the same version of
GeoTools 14.1. The only difference I have found so far is
GeoMesa version. Has anyone noticed this issue yet? Is
there a fix for it?
Thanks,
Diane
_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.locationtech.org/mailman/listinfo/geomesa-users