Complex Geo filter: Passing an array of ID's into ElasticSearch?


(charper) #1

I would like to use ES in a current project but it requires that I
index all types of spatial data not just points (points, lines,
polygons, multipoint, etc). Since only points are supported in ES, it
isn't possible to achieve this, especially when the filters themselves
will be geographic (select by polyline, polygon, bounding box, point,
etc.)

Since the storage and indexing of GIS data is done well by spatial
databases such as PostGIS, my question is this:

Is their a efficient way to do the initial query in the GIS database
and pass an array of ID's to ES to use as a filter for the text
search?

Is there another way to approach this problem? Perhaps in the spirit
of a multi-index query? Any guidance is appreciated.

Thanks,

Cole


(Shay Banon) #2

You can use a terms filter with all the ids you want to hit on. If there are many, it won't blazing fast, but might be good enough.
On Tuesday, March 29, 2011 at 11:08 PM, Cole wrote:

I would like to use ES in a current project but it requires that I
index all types of spatial data not just points (points, lines,
polygons, multipoint, etc). Since only points are supported in ES, it
isn't possible to achieve this, especially when the filters themselves
will be geographic (select by polyline, polygon, bounding box, point,
etc.)

Since the storage and indexing of GIS data is done well by spatial
databases such as PostGIS, my question is this:

Is their a efficient way to do the initial query in the GIS database
and pass an array of ID's to ES to use as a filter for the text
search?

Is there another way to approach this problem? Perhaps in the spirit
of a multi-index query? Any guidance is appreciated.

Thanks,

Cole


(system) #3