Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pat/thinking-sphinx-raspell

An add-on gem for spelling suggestions in Thinking Sphinx
https://github.com/pat/thinking-sphinx-raspell

Last synced: about 6 hours ago
JSON representation

An add-on gem for spelling suggestions in Thinking Sphinx

Awesome Lists containing this project

README

        

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

h1. Thinking Sphinx with Raspell

This library adds Aspell/Raspell support to "Thinking Sphinx":http://pat.github.io/thinking-sphinx

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/evan/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.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'

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