Indexing MySQL data with ElasticSearch

(Natasha) #1

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.


(David Pilato) #2

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.