ahoward / tsearchable Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dylanz/tsearchable
rails tsearch plugin for postgresql 8.3
This project forked from dylanz/tsearchable
rails tsearch plugin for postgresql 8.3
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.