This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
README | Fri Sep 26 10:24:24 -0700 2008 | [EppO] |
| |
init.rb | Thu Jun 19 17:24:38 -0700 2008 | [Dylan Stamat] |
| |
lib/ | Fri Sep 26 10:11:42 -0700 2008 | [EppO] |
| |
tasks/ | Fri Sep 26 10:11:42 -0700 2008 | [EppO] |
| |
test/ | Thu Jun 19 17:24:38 -0700 2008 | [Dylan Stamat] |
README
NOTE && TODO: This has been tested on Rails 2.0.2, 2.1.0 and 2.1.1 only.
It contains some activesupport'isms, and... they should definitely be
stripped out and this plugin made into a proper gem.
Description
==============
This is an extremely light weight interface to postgresql 8.3's built
in text searching. There exists an acts_as_tsearch, but this is its
smaller and built specifically for 8.3, more pointed, brother.
It lacks many features, but is useful in most text searching scenerios.
This plugin assumes a lot. The lot is:
- Default language used for full text search is english. Use :catalog => 'pg_catalog.french' to change that.
- GIN index by default. You can pass in :index => 'GIST' if you'd like to change that.
- Default tsvector is a coellesced composite of the fields you pass in.
- OPTIONAL: if you want to use suggestion feature ("do you mean x ?") pg_trgm has to be activated like this:
psql database_name < /path_to_your_pg_contrib_folder/pg_trgm.sql
(see http://www.postgresql.org/docs/8.3/static/pgtrgm.html for more details about pg_trgm)
Usage
==============
- ensure your table has a tsvector ts_index column
... in create table block: t.tsvector :ts_index
- ensure your model declares text_searchable properly
... tsearchable :fields => [:name, :description]
- create tsvector index and trigger using rake task
... rake tsearchable:vectors:create VECTOR=name_of_the_model
... rake tsearchable:triggers:create VECTOR=name_of_the_model
- YourModel.find_by_text_search("moose OR mousse")
... returns result set. supports most googlish ands and ors and double quoting
... supports WillPaginate pagination, and the will_paginate view helper
- YourModel.count_by_text_search("moose OR mousse")
... returns the number of matches
OPTIONAL: to use suggestion feature (pg_trgm MUST be activated)
- ensure your table has a column with gist_trgm_ops or gin_trgm_ops index type
... TODO: create rake task to do that
- ensure your model declares suggestion fields
... tsearchable :suggests => [ :title ]
- YourModel.find_by_trgm("keyword")
... returns result set.
TODO
==============
most importantly... document, and turn it into a gem
also:
- weighting, highlighting,
- custom parsers/templates/rankers,
- multiple vectors,
- multitable support





