Hello all,
I am attempting to use the
geomesa-accumulo datastore to do 'point-in-polygon'
containment checks on large amounts of incoming data
(millions of individual Geo points). I have ingested the polygons
data(via the native api with custom simplefeatureview
and getExtraAttributes for my interested features) and
it lives in geomesa accumulo tables. I've been
querying via the native api (so far the only way I
know how query the data) and it is very slow. I build
a query for each incoming geopoint (containment
check...)
GeoMesaQuery.GeoMesaQueryBuilder.builder()
.within(-180.0,-90.0,180.0,90.0)
.filter(ff.contains(ff.property("geom"),
ff.literal(point))).build()
Note: the .within is needed or I get a
null pointer in my query.
And execute the query...
Index.query(above)
It takes nearly a second per query (and
with millions of queries this is not acceptable as you
can understand).
My guess is the native api is just slow by
it's very nature? What would be the advisable way to
quickly query (make many, many queries) the data stored
in the geomesa accumulo data store?
Note: I've read everything I could get my
hands (Google) on and nothing so far has been very
clear. I read some things that say you can (somehow) use
geotools to query, but nothing really explained how to
do so (and if I don't need an outside library I would
rather not use it).
Thanks for the help and advice,
Andy