In case of MySQL, you can write a listener to the MySQL binlog to index/delete rows, by assuming your data model provides an 1:1 relationship between SQL rows and ES docs.
If that is not possible because your model is based on table joins, and you can live with a single node (non-scalable) solution, you may look at the JDBC river https://github.com/jprante/elasticsearch-river-jdbc which was built for demonstration purposes. For checking if a doc is already indexed, you should use update operation with the versioning feature of ES. Updates are like indexing behind the scenes with a previous read operation. It is efficient, because you save an extra round trip between server and client. Jörg -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoHaEtaYaL2eNN%3DgHT%2BS7jrKbHnvOAMy5pzHrR25tgKb0A%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.
