Skip to content

pat/thinking-sphinx-raspell

Repository files navigation

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.

Thinking Sphinx with Raspell

This library adds Aspell/Raspell support to Thinking Sphinx

Installation

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'

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

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 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.

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.

Copyright

Copyright © 2009-2011 Pat Allan. Released under an MIT licence.

About

An add-on gem for spelling suggestions in Thinking Sphinx

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages