Installing Thinking Sphinx

Please note: Using Rails 3? You’ll want to read the new instructions for that.

There’s a few different ways you can get Thinking Sphinx installed into your web application. I highly recommend installing as a gem (and indeed, if you’re using Merb, then you’ll have to use the gem). If you’re using Rails and prefer a plugin, read through the options further down the page.

As a Gem

There’s a few steps to using Thinking Sphinx as a gem. Firstly, let’s install it:

gem install thinking-sphinx

If you’re using Merb, then you just need to require the library within your init.rb:

require 'thinking_sphinx'

For Rails users, you’ll need to add the gem to your configuration setup in environment.rb:

config.gem(
  'thinking-sphinx', :version => '1.4.10'
)

And one last thing: ensure the rake tasks are available by adding the following lines to your Rakefile:

begin
  require 'thinking_sphinx/tasks'
rescue LoadError
  puts "You can't load Thinking Sphinx tasks unless the thinking-sphinx gem is installed."
end

Please note that if you’ve got Rails vendored, then this may not work so neatly. Thinking Sphinx’s rake tasks load ActiveRecord, but it doesn’t pick up on the vendored version – so you will still need Rails gems installed normally as well.

As a Plugin with Rails 2.1 or newer and Git

If you’ve got git installed, and are using Rails 2.1 or newer, then it’s painless to get Thinking Sphinx installed in your Rails application:

script/plugin install \
  git://github.com/pat/thinking-sphinx.git

As a Plugin with Rails 2.0 or older and Git

If you’ve got git, but using one of the older versions of Rails, then things are slightly more complicated.

git clone \
  git://github.com/pat/thinking-sphinx.git \
  vendor/plugins/thinking_sphinx
cd vendor/plugins/thinking_sphinx
git checkout v1

And if you want to make sure it all gets committed to git as part of your main repository, don’t forget to remove the plugin’s .git directory.

rm -r vendor/plugins/thinking_sphinx/.git

As a Plugin without Git

If you don’t have git installed, all is not lost. You can either manually download the tarball from GitHub, and then extract it into your vendor/plugins directory, or you can run the following shell commands from the root of your Rails application, which do exactly the same thing.

curl -L \
  http://github.com/pat/thinking-sphinx/tarball/v1 \
  -o thinking-sphinx.tar.gz
tar -xvf thinking-sphinx.tar.gz -C vendor/plugins
mv vendor/plugins/freelancing-god-thinking-sphinx* \
  vendor/plugins/thinking-sphinx
rm thinking-sphinx.tar.gz