Elastic search full text vs mysql full text? Elastic search full text vs mysql full text? elasticsearch elasticsearch

Elastic search full text vs mysql full text?


With MySQL you will always be indexing and searching your data.

With ElasticSearch you have more flexibility in what you index as one unit. You could take all of content comments and tags for an item and put it in ES as one item.

You'll also likely find that ES will give better performance and better results in general that you would get with mysql. You also have more flexibility with things like synonyms and weighting.

But it does mean you have another stack to maintain and you have to manage indexing and updating of content.

So it will depend on your data size and the importance of search as a feature.

I would suggest that you start with MySql text search, as in a simple case it will be quick to set up and if this does not provide what you need then upgrade to elastic search. You will at least have a straw man feature which can be used to further refine your search requirements.


The main difference ElasticSearch from MySQl-search is that ES works faster when large amounts of data through indexing.

The index contains ready-made sets of data with which you are operating further ES-filters. So if you search with ES, you haven't to do a direct request to the database, as in MySQL.

This is a main reason to use ElasticSearch in HighLoad projects.

For small amounts of data you will not feel the difference.


With ES you get TF-IDF with one API (_termvectors). To my knowledge, MySQL does not have that feature, though it can be implemented by querying the database several times.

Edit: This answer was based on the ES capabilities in 2016-2017. It is no longer valid.