What do you use for full-text search these days?

jaredsilver profile image Jared Silver Jul 12, 2017

Hi folks!

I'm currently researching various options for a full-text search implementation. I'm building it for a Rails app using Postgres, but I'm also curious in general: what are you using for full-text search these days?

Thanks a bunch!

markdown cheatsheet

Can highly recommend Algolia too. Super easy to to setup, and performance is amazing. Only downside is that it can get quite pricey.

Full-text search for general purposes, like internal and querying or for user-centric UX concerns?

Either one! :)

I'm actually building for both at the moment.

We use Algolia which is a hosted, super low-latency search index and I think it's really well-done. And for some internal search, where performance and other tuning isn't as critical, we use Postgres' native full-text search, as it's the easiest to work with internally, test, etc. as opposed to Solr/ElasticSearch etc. in my book, but it's probably not what you'd want your end user using.

And I can't say I definitely recommend Algolia for all use-cases, but I'm happy with how we're using it. We have a very fast search if I do say so myself :)

Depends on needs and operations budget. With my targeted application and small team, we use Postgres full text search. At the time it felt like a fallback choice compared to a dedicated search database. But since it has been in production, we have found it to suit our needs well. This excellent post has a section of full text search.

If we had a mass-audience or content-heavy app and more resources available, we might choose a more in-depth searching solution like elastic or solr.

Hi Jared!

I used some famous solutions in past projects and after some test in our last project we started using the PostgreSQL Full-Text Search.

I presented a talk at last EuroPython conference about how we started using PostgreSQL Full-Text with Python and Django:

I suggest you to do some test with it because you already have PostgreSQL on your stack and you don't need other external software to have this functionality.

Searching for my project I found a lot of interesting resource related to Rails:


If you want to do the indexing yourself and customize query returns, suggesters (for typahead), etc for your app I've had good luck with Elasticsearch. Simple setup process, and clients for the all kinds of languages. Scales with the app, so you can start running it on the same box and locally in your dev environment and expand to a cluster if you see uptake. In general, it's nice to have something that's totally accessible via the API at all levels and I've enjoyed the community and the docs.

Once your data is in the index and you've got text searching down, the aggregation abilities can be useful really quickly and sometimes unexpectedly, and they are pretty much "free" for the ones you use most often from a query perspective. "Can we show X in the app in a performant way?" Um... :: checks docs for aggregation * :: "Wow, yeah, we can."

Elasticsearch! Focuses on it and does it perfectly! It's so easy to integrate with beats.. Look here, ma.