Elasticsearch provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. It not only great for search, but also for extracting value out of all the data that businesses are collecting. In Ramani Cloud we’ve made an API for 1) exposing the Elasticsearch API in a secure manner and 2) getting data from PostGIS to Elasticsearch in a very simple way. It’s not because it’s hard to get data into Elasticsearch in the first place. That’s done simply by posting JSON to its API. The challenge is to get data from PostGIS formatted to GeoJSON and then piped to Elasticsearch in one easy step. With Ramani Cloud all you have to do is selecting a layer in the Ramani Cloud Admin and click the “Index in Elasticsearch” button. Ramani Cloud will first map the table schema to an Elasticsearch type and then pipe the tabular data as GeoJSON to Elasticsearch. To hold data synchronized between PostGIS, Ramani Cloud's database engine, and Elasticsearch you can start a daemon that listens to INSERT, UPDATE and DELETE statements on the database. Technically, there will be installed a trigger on the table when it is indexed in Elasticsearch. The trigger uses NOTIFY/LISETN to send messages to the daemon, which ensures the transfer of the modified data to Elasticsearch. It all happens asynchronously, so database transactions are not affected by the system.
© 2015 Ujuizi Laboratories