h1. Thinking Sphinx with Raspell This library adds Aspell/Raspell support to "Thinking Sphinx":http://ts.freelancing-gods.com. h2. Installation You'll need "the Aspell library":http://www.aspell.net (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":http://github.com/fauna/raspell. 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.1',
:require => 'thinking_sphinx/raspell'
If you're using Ruby 1.9, @raspell@ doesn't currently work, but recent commits to this library now use @dmarkow-raspell@ instead - so use Github as your source:
gem 'thinking-sphinx-raspell',
:git => 'git://github.com/freelancing-god/thinking-sphinx-raspell.git'
Or, if using older versions of Rails, your @config/environment.rb@ file:
config.gem 'thinking-sphinx-raspell',
:lib => 'thinking_sphinx/raspell',
:version => '>= 1.0.0'
Or, if you wish to do a manual require yourself:
require 'thinking_sphinx/raspell'
h2. Usage
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
h2. Configuration
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 need more documentation, you can check out the YARD files "on rdoc.info":http://rdoc.info/projects/freelancing-god/thinking-sphinx-raspell. This isn't a big library, though - what you see in this readme is pretty much what you get.
h2. Limitations
* 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.
h2. Copyright
Copyright (c) 2009-2011 "Pat Allan":http://freelancing-gods.com. Released under an MIT licence.