Sphinx plugin for ActiveRecord/Rails

License: MIT

Language: Ruby

Keywords: rails, ruby, search, sphinx

Thinking Sphinx

Thinking Sphinx is a library for connecting ActiveRecord to the Sphinx full-text search tool, and integrates closely with Rails (but also works with other Ruby web frameworks). The current release is v5.0.0.


Please refer to the changelog and release notes for any changes you need to make when upgrading. The release notes in particular are quite good at covering breaking changes and more details for new features.

The documentation also has more details on what’s involved for upgrading from v4 to v5, v3 to v4, and v1/v2 to v3.


It’s a gem, so install it like you would any other gem. You will also need to specify the mysql2 gem if you’re using MRI, or jdbc-mysql if you’re using JRuby:

gem 'mysql2',          '~> 0.4',    :platform => :ruby
gem 'jdbc-mysql',      '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.0'

The MySQL gems mentioned are required for connecting to Sphinx, so please include it even when you’re using PostgreSQL for your database.

You’ll also need to install Sphinx – this is covered in the extended documentation.


Begin by reading the quick-start guide, and beyond that, the documentation should serve you pretty well.


The current release of Thinking Sphinx works with the following versions of its dependencies:

Library Minimum Tested Against
Ruby v2.4 v2.4, v2.5, v2.6, v2.7
Sphinx v2.2.11 v2.2.11, v3.2.1
Manticore v2.8 v2.8, v3.4
ActiveRecord v4.2 v4.2..v6.0

It might work with older versions of Ruby, but it’s highly recommended to update to a supported release.

It should also work with JRuby, but the test environment on Travis CI has been timing out, hence that’s not actively tested against at the moment.

Sphinx or Manticore

Thinking Sphinx is currently built for Sphinx 2.2.11 or newer (though it’ll likely work with 2.1.x releases), or Manticore v2.8+.

Rails and ActiveRecord

Currently Thinking Sphinx is built to support Rails/ActiveRecord 4.2 or newer. If you’re using Sinatra and ActiveRecord instead of Rails, that’s fine – just make sure you add the :require => 'thinking_sphinx/sinatra' option when listing thinking-sphinx in your Gemfile.

If you want ActiveRecord 3.2-4.1 support, then refer to the 4.x releases of Thinking Sphinx. Or, for ActiveRecord 3.1 support, then refer to the 3.0.x releases. Anything older than that, then you’re stuck with Thinking Sphinx v2.x (for Rails/ActiveRecord 3.0) or v1.x (Rails 2.3). Please note that these older versions are no longer actively supported.


You’ll need either the standard Ruby (v2.4 or newer) or JRuby (9.1 or newer).

Database Versions

MySQL 5.x and Postgres 8.4 or better are supported.


Please note that this project has a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

To contribute, clone this repository and have a good look through the specs – you’ll notice the distinction between acceptance tests that actually use Sphinx and go through the full stack, and unit tests (everything else) which use liberal test doubles to ensure they’re only testing the behaviour of the class in question. I’ve found this leads to far better code design.

All development is done on the develop branch; please base any pull requests off of that branch. Please write the tests and then the code to get them passing, and send through a pull request.

In order to run the tests, you’ll need to create a database named thinking_sphinx:

# Either fire up a MySQL console:
mysql -u root
# OR a PostgreSQL console:
# In that console, create the database:
CREATE DATABASE thinking_sphinx;

You can then run the unit tests with rake spec:unit, the acceptance tests with rake spec:acceptance, or all of the tests with just rake. To run these with PostgreSQL, you’ll need to set the DATABASE environment variable accordingly:

DATABASE=postgresql rake


Copyright © 2007-2020, Thinking Sphinx is developed and maintained by Pat Allan, and is released under the open MIT Licence. Many thanks to all who have contributed patches.

Project Statistics

Sourcerank 13
Repository Size 4.89 MB
Stars 1,595
Forks 481
Watchers 32
Open issues 7
Dependencies 17
Contributors 54
Tags 49
Last updated
Last pushed

Top Contributors See all

Pat Allan Philip Arndt Timo Virkkala Benjamin Grössing nathanaelg Jonathan del Strother Alexander Tipugin Randy Coulman Julio Monteiro Konstantin Chance Downs Darcy Laycock Rob Anderton Michael Pearson Igor Zubkov Denis ygelfand Ken Dreyer David Celis Bobby Uhlenbrock

Packages Referencing this Repo

An intelligent layer for ActiveRecord (via Rails and Sinatra) for the Sphinx full-text search tool.
Latest release 5.0.0 - Updated - 1.6K stars

Recent Tags See all

v5.0.0 July 20, 2020
v4.4.1 August 23, 2019
v4.4.0 August 21, 2019
v4.3.2 July 10, 2019
v4.3.1 June 27, 2019
v4.3.0 May 18, 2019
v4.2.0 March 09, 2019
v4.1.0 December 28, 2018
v4.0.0 April 10, 2018
v3.4.2 September 29, 2017
v3.4.1 August 29, 2017
v3.4.0 August 28, 2017
v3.3.0 December 13, 2016
v3.2.0 May 13, 2016
v3.1.4 June 01, 2015

Interesting Forks See all

Sphinx plugin for Rails and Merb
Ruby - MIT - Updated - 13 stars - 1 forks
Sphinx plugin for Rails and Merb
Ruby - MIT - Updated - 6 stars - 1 forks
Sphinx plugin for Rails and Merb
Ruby - MIT - Last pushed - 6 stars
Sphinx plugin for Rails and Merb
Ruby - MIT - Last pushed - 5 stars
Sphinx plugin for Rails and Merb
Ruby - MIT - Last pushed - 4 stars - 1 forks

Something wrong with this page? Make a suggestion

Last synced: 2020-07-20 08:53:47 UTC

Login to resync this repository