Module: Sunspot::Rails::Searchable::InstanceMethods
- Defined in:
- lib/sunspot/rails/searchable.rb
Class Method Summary collapse
-
.included(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #indexable? ⇒ Boolean
-
#solr_index ⇒ Object
Index the model in Solr.
-
#solr_index! ⇒ Object
Index the model in Solr and immediately commit.
- #solr_more_like_this(*args, &block) ⇒ Object
- #solr_more_like_this_ids(&block) ⇒ Object
-
#solr_remove_from_index ⇒ Object
Remove the model from the Solr index.
-
#solr_remove_from_index! ⇒ Object
Remove the model from the Solr index and commit immediately.
Class Method Details
.included(base) ⇒ Object
:nodoc:
333 334 335 336 337 338 339 340 341 342 |
# File 'lib/sunspot/rails/searchable.rb', line 333 def self.included(base) #:nodoc: base.module_eval do alias_method :index, :solr_index unless method_defined? :index alias_method :index!, :solr_index! unless method_defined? :index! alias_method :remove_from_index, :solr_remove_from_index unless method_defined? :remove_from_index alias_method :remove_from_index!, :solr_remove_from_index! unless method_defined? :remove_from_index! alias_method :more_like_this, :solr_more_like_this unless method_defined? :more_like_this alias_method :more_like_this_ids, :solr_more_like_this_ids unless method_defined? :more_like_this_ids end end |
Instance Method Details
#indexable? ⇒ Boolean
394 395 396 397 |
# File 'lib/sunspot/rails/searchable.rb', line 394 def indexable? return true unless .has_key?(:if) send([:if]) end |
#solr_index ⇒ Object
Index the model in Solr. If the model is already indexed, it will be updated. Using the defaults, you will usually not need to call this method, as models are indexed automatically when they are created or updated. If you have disabled automatic indexing (see ClassMethods#searchable), this method allows you to manage indexing manually.
351 352 353 |
# File 'lib/sunspot/rails/searchable.rb', line 351 def solr_index Sunspot.index(self) if indexable? end |
#solr_index! ⇒ Object
Index the model in Solr and immediately commit. See #index
358 359 360 |
# File 'lib/sunspot/rails/searchable.rb', line 358 def solr_index! Sunspot.index!(self) if indexable? end |
#solr_more_like_this(*args, &block) ⇒ Object
381 382 383 384 385 386 |
# File 'lib/sunspot/rails/searchable.rb', line 381 def solr_more_like_this(*args, &block) = args. self.class.solr_execute_search() do Sunspot.new_more_like_this(self, *args, &block) end end |
#solr_more_like_this_ids(&block) ⇒ Object
388 389 390 391 392 |
# File 'lib/sunspot/rails/searchable.rb', line 388 def solr_more_like_this_ids(&block) self.class.solr_execute_search_ids do solr_more_like_this(&block) end end |
#solr_remove_from_index ⇒ Object
Remove the model from the Solr index. Using the defaults, this should not be necessary, as models will automatically be removed from the index when they are destroyed. If you disable automatic removal (which is not recommended!), you can use this method to manage removal manually.
369 370 371 |
# File 'lib/sunspot/rails/searchable.rb', line 369 def solr_remove_from_index Sunspot.remove(self) if indexable? end |
#solr_remove_from_index! ⇒ Object
Remove the model from the Solr index and commit immediately. See #remove_from_index
377 378 379 |
# File 'lib/sunspot/rails/searchable.rb', line 377 def solr_remove_from_index! Sunspot.remove!(self) if indexable? end |