Please Note: This project is no longer supported. It only works with Thinking Sphinx v1/v2, whereas the v3+ releases are what has been actively supported since 2012. Patches are welcome to rewrite this for v3 support if anyone’s feeling particularly keen to modernise this gem.
This library adds Aspell/Raspell support to Thinking Sphinx
You’ll need the Aspell library (easily compiled by source, or installed via Homebrew or MacPorts). Don’t forget to install the English library as well – there’s instructions for both in Evan Weaver’s Raspell README.
Once that’s set up, grab the gem:
gem install thinking-sphinx-raspell
You’ll want to add the gem to your Gemfile
:
gem 'thinking-sphinx-raspell', '1.1.2',
:require => 'thinking_sphinx/raspell'
Or, if using older versions of Rails, your config/environment.rb
file:
config.gem 'thinking-sphinx-raspell',
:lib => 'thinking_sphinx/raspell',
:version => '>= 1.1.2'
Or, if you wish to do a manual require yourself:
require 'thinking_sphinx/raspell'
By default, Thinking Sphinx will not overwrite your search query, but you can view suggestions:
@articles = Article.search 'pnacakes'
@articles.suggestion? #=> true
@articles.suggestion #=> 'pancakes'
You can also choose to redo the search using the provided suggestion:
@articles.redo_with_suggestion
@articles.each do |article|
# ...
end
You can customise the following settings – either in your config/environment.rb
file, or perhaps in an initializer. Example syntax below highlights the current defaults.
config = ThinkingSphinx::Configuration.instance
config.raspell.dictionary = 'en'
config.raspell.suggestion_mode = :normal
config.raspell.options['ignore-case'] = true
You can look at the available options using the following two collections:
config = ThinkingSphinx::Configuration.instance
config.raspell.dictionaries #=> ['en', 'en_GB', 'en_US', ... ]
config.raspell.suggestion_modes #=> [:ultra, :fast, :normal, :badspellers]
If you require more control over the Aspell options you can also pass in your own instance:
config = ThinkingSphinx::Configuration.instance
config.raspell.speller = Aspell.new('en_GB')
If you need more documentation, you can check out the YARD files on rdoc.info. This isn’t a big library, though – what you see in this readme is pretty much what you get.
- Only checks normal query strings, not field-specific queries via the
:conditions
hash.
Patches are very much welcome – I would like to address this last remaining limitation.
Copyright © 2009-2011 Pat Allan. Released under an MIT licence.