module Sunspot::Rails::Searchable::InstanceMethods

Public Instance Methods

indexable?() click to toggle source
# File lib/sunspot/rails/searchable.rb, line 493
def indexable?
  # options[:if] is not specified or they successfully pass
  if_passes = self.class.sunspot_options[:if].nil? ||
              constraint_passes?(self.class.sunspot_options[:if])

  # options[:unless] is not specified or they successfully pass
  unless_passes = self.class.sunspot_options[:unless].nil? ||
                  !constraint_passes?(self.class.sunspot_options[:unless])

  if_passes and unless_passes
end
solr_atomic_update(updates = {}) click to toggle source

Updates specified model properties in Solr. Unlike Sunspot::Rails::Searchable::ClassMethods#solr_atomic_update you dont need to pass object id, you only need to pass hash with property changes

# File lib/sunspot/rails/searchable.rb, line 449
def solr_atomic_update(updates = {})
  Sunspot.atomic_update(self.class, self.id => updates)
end
solr_atomic_update!(updates = {}) click to toggle source

Updates specified model properties in Solr and immediately commit. See solr_atomic_update

# File lib/sunspot/rails/searchable.rb, line 457
def solr_atomic_update!(updates = {})
  Sunspot.atomic_update!(self.class, self.id => updates)
end
solr_index() click to toggle source

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.

# File lib/sunspot/rails/searchable.rb, line 433
def solr_index
  Sunspot.index(self)
end
solr_index!() click to toggle source

Index the model in Solr and immediately commit. See index

# File lib/sunspot/rails/searchable.rb, line 440
def solr_index!
  Sunspot.index!(self)
end
solr_more_like_this(*args, &block) click to toggle source
# File lib/sunspot/rails/searchable.rb, line 480
def solr_more_like_this(*args, &block)
  options = args.extract_options!
  self.class.solr_execute_search(options) do
    Sunspot.new_more_like_this(self, *args, &block)
  end
end
solr_more_like_this_ids(&block) click to toggle source
# File lib/sunspot/rails/searchable.rb, line 487
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() click to toggle source

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.

# File lib/sunspot/rails/searchable.rb, line 468
def solr_remove_from_index
  Sunspot.remove(self)
end
solr_remove_from_index!() click to toggle source

Remove the model from the Solr index and commit immediately. See remove_from_index

# File lib/sunspot/rails/searchable.rb, line 476
def solr_remove_from_index!
  Sunspot.remove!(self)
end