Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/technicalpickles/ambitious-sphinx
Ambition adapter for Sphinx
https://github.com/technicalpickles/ambitious-sphinx
Last synced: 3 months ago
JSON representation
Ambition adapter for Sphinx
- Host: GitHub
- URL: https://github.com/technicalpickles/ambitious-sphinx
- Owner: technicalpickles
- License: mit
- Created: 2008-02-07T05:38:41.000Z (almost 17 years ago)
- Default Branch: master
- Last Pushed: 2008-03-26T19:12:32.000Z (almost 17 years ago)
- Last Synced: 2023-04-09T06:06:26.861Z (over 1 year ago)
- Language: Ruby
- Homepage:
- Size: 145 KB
- Stars: 15
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
= An Ambitious Sphinx Adapter
I don't know about you, but I like me some sexy full-text searching.
== The basics
Want to find all meals that mention bacon?
Meal.select {'bacon'}
What about bacon bits and sour cream?
Meal.select {'bacon bits' && 'sour cream'}
Maybe with bacon in the name, or cheese in the recipe?
Meal.select {|m| m.name =~ 'bacon' || m.recipe =~ 'cheese'}
Cheese in the name, but not grilled?
Meal.select {|m| m.name =~ 'bacon' && m.name !~ 'grilled'}
== Pagination
You're going to want to use pagination. Ultrasphinx, the underlying library, only supports it, as in, you can't just get all the objects matching your query. You _have_ to use paging.
It's pretty simple:
Meal.select {'bacon'}.page(2)
Meal.select {'bacon'}.page(3)== Big honking disclaimer
We're still learning a lot about how sphinx and ambition work, so things are likely to change a lot, and features are likely to be missing.
== Getting Started
=== Installing
sudo gem install ambitious-sphinx
=== Add it to your app
Require our files somewhere, like at the end of config/environment.rb, maybe create config/initializers/sphinx.rbrequire 'ultrasphinx'
require 'ambition/adapters/ambitious_sphinx'
=== Sphinx and Ultrasphinx
You will also need to go through the motions of setting up ultrasphinx.This includes:
* Configuring/installing sphinx
* Modifying your model to indicate what's to be indexed
* Bootstrapping ultrasphinx
All this is discussed in detail in ultrasphinx's README== Playing with the code base
In addition to the other dependencies, you'll need to:
gem install echoe redgreen mocha test-spec
Run the tests with:
rake test
== More information on Sphinx:
-> http://www.sphinxsearch.com/
-> http://blog.evanweaver.com/articles/2007/07/09/ultrasphinx-searching-the-world-in-231-seconds/
-> http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/files/README.html== More information on Ambition:
-> http://ambition.rubyforge.org
-> http://groups.google.com/group/ambition-rb/