Put the following in your Gemfile:
gem 'mongo_mapper'
gem 'sunspot_mongo'
Then run:
rails g mongo_mapper:config
rails g sunspot_rails:install
rake sunspot:solr:start
gem 'mongoid'
gem 'sunspot_mongo'
Then run:
rails g mongoid:config
rails g sunspot_rails:install
rake sunspot:solr:start
When upgrading to a new version, don't forget to check UPGRADING for notes about breaking changes.
Add the following to your model (assuming you have a string field named "content"):
include Sunspot::Mongo
searchable do
text :content
end
Then search like usual:
search = Article.search do
fulltext "something interesting"
end
search.results
Note: Mongoid adds Article.search
, use Article.solr_search
instead.
If you are using Rails, objects are automatically indexed to Solr as a part of the save callbacks.
You can reindex a collection by calling .reindex
directly on the model class. When using Mongoid, #reindex
can be called on a search scope or criteria, reindexing only the matching objects.
Article.reindex
# Mongoid only
Article.pending.reindex
Article.where(status: "posted").reindex
Note: #reindex
on a MongoMapper search will always reindex the entire collection.
If you make a change to the object's "schema" (code in the searchable block), you must reindex all objects so the changes are reflected in Solr. Run:
bundle exec rake sunspot:reindex
See the Sunspot documentation.
Based on sunspot_mongoid by jugyo. Originally developed by balexand.