Like many developers raised on a steady diet of PHP/MySQL, doing a search with a LIKE = ‘%term%’ was second nature to me. It usually worked well enough for what I was using it for.
Then, I started working on a project called FilmedInsert. FilmedInsert is a site that is best described as an IMDB for music videos – we collect credit (and other data) about music videos and are starting to accept submissions from beta users. We are currently at around 7,000 music videos, so we have a ways to go, but we have around 3o0,000 name entities in our database. Many are from data input for credits, but the majority we acquired through the open source music database Discogs. (Note: Discogs has 2.5million+ artists, but we pared the numbers down based on which entries would most likely be used to reduce a lot of data management overhead.)
Obviously, MySQL LIKE isn’t going to cut it here – not even close. MySQL fulltext isn’t even going to make it work here either. We need some fine-grain control. Enter ElasticSearch. It’s incredibly fast, incredibly flexible, and once you get the hang of it, a breeze to work with. We’re humming along with our 300,000 document database and we couldn’t be happier with the performance and ease of use. Continue reading




