Indexing MySQL data with ElasticSearch

I would like to get some feedback from anyone who's had experience indexing MySQL data with ElasticSearch for full-text searching. How did you accomplish this? I've been researching this a bit and unfortunately I've noticed that ElasticSearch has no official site plugin to accomplish this although I've come across three different 3rd party tools:

  • elasticsearch-river-jdbc
  • go-mysql-elasticsearch
  • elasticsearch-river-mysql

I'm unsure which one would be best in terms of performance although I suspect the Go tool might have an advantage due to it's compiled nature and the fact that it uses the mysql binary logs. I would appreciate any advice or examples anyone could provide me with.


You can consider logstash and its jdbc input plugin.

But if possible, I'd recommend another approach which I described there:

Basically, I'd recommend modifying the application layer if possible and send data to elasticsearch in the same "transaction" as you are sending your data to the database.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.