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 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 from "GemCutter":http://gemcutter.org:
sudo gem install thinking-sphinx-raspell \
--source http://gemcutter.org
You'll want to add the gem to your @config/environment.rb@ file (assuming you're working on a Rails application):
config.gem('thinking-sphinx-raspell',
:lib => 'thinking_sphinx/raspell',
:source => 'http://gemcutter.org',
: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 "Pat Allan":http://freelancing-gods.com. Released under an MIT licence.