
Security News
New Website “Is It Really FOSS?” Tracks Transparency in Open Source Distribution Models
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
couchrest_model_search
Advanced tools
Search integration for couchrest_model
users that are using couchdb-lucene.
$ gem install couchrest_model_search
By simply requiring 'couchrest_model_search' in your project, all of your CouchRest::Model::Base
models will respond to a search
class method. This method will, by default, perform a full-text search on your model for any query you pass to it.
For example, suppose we have defined the following model:
class Article < CouchRest::Model::Base
property :title
property :author
property :body
end
And now, let's create some articles:
Article.create(
:title => "CouchDB is fun!",
:author => "moonmaster9000",
:body => "CouchDB is the most fun EVAR."
)
Article.create(
:title => "CouchDB Lucene FTW",
:author => "moonmaster9000",
:body => "CouchDB Lucene makes your documents easily searchable!"
)
Article.create(
:title => "Search your CouchDB documents from Ruby",
:author => "dorren",
:body => "Use the couchrest_model_search gem to search your documents from Ruby."
)
If we searched for "CouchDB", we would receive all documents we've created, since they all contained the word "CouchDB" in one of the properties:
Article.search("CouchDB").map(&:title)
#==> ["CouchDB is fun!", "CouchDB Lucene FTW", "Search your CouchDB documents from Ruby"]
Of course, searching for "moonmaster9000" would only return the first two documents:
Article.search("moonmaster9000").map(&:title)
#==> ["CouchDB is fun!", "CouchDB Lucene FTW"]
By default, the search
method will use an underlying fulltext search index function to query your content. You can override the definition of this default "fulltext" search index function via the search_by
class method:
class Article < CouchRest::Model::Base
property :title
property :author
property :body
search_by :fulltext,
:index => %(
function(doc){
//... your code here
}
)
end
You can also create other search indexes. For example, suppose we'd like to index only the titles of articles for search:
class Article < CouchRest::Model::Base
property :title
property :author
property :body
search_by :title,
:index => %(
function(doc){
var contentToIndex = new Document();
contentToIndex.add(doc.title);
return contentToIndex;
}
)
end
Now, to perform a search by title (instead of a fulltext search), simply pass :by_title
along with your query to the search
method:
Article.search "some query", :by_title
You can pass any CouchDB-Lucene query options to your search via an optional third parameter to search:
Article.search "apples", :fulltext, :limit => 10
The following characters have special meaning to Lucene when added to a query:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
By default, couchrest_model_search
will not escape your query. If you want it to automatically escape these special characters in your query, then use the escaped_search
method:
Article.escaped_search "2001:March:10"
FAQs
Unknown package
We found that couchrest_model_search demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.