Sha256: e697f29b4611ca1eda33898268ef387d780745df440621d0552ce44fa478e589

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

# A simple job for flagging a specified Sphinx document in a given index as
# 'deleted'.
#  
class ThinkingSphinx::Deltas::FlagAsDeletedJob
  attr_accessor :indexes, :document_id
  
  # Initialises the object with an index name and document id. Please note that
  # the document id is Sphinx's unique identifier, and will almost certainly not
  # be the model instance's primary key value.
  # 
  # @param [String] index The index name
  # @param [Integer] document_id The document id
  # 
  def initialize(indexes, document_id)
    @indexes, @document_id = indexes, document_id
  end
  
  # Updates the sphinx_deleted attribute for the given document, setting the
  # value to 1 (true). This is not a special attribute in Sphinx, but is used
  # by Thinking Sphinx to ignore deleted values between full re-indexing. It's
  # particularly useful in this situation to avoid old values in the core index
  # and just use the new values in the delta index as a reference point.
  # 
  # @return [Boolean] true
  # 
  def perform
    config = ThinkingSphinx::Configuration.instance
    
    indexes.each do |index|
      config.client.update(
        index,
        ['sphinx_deleted'],
        {@document_id => [1]}
      ) if ThinkingSphinx.sphinx_running? &&
        ThinkingSphinx.search_for_id(@document_id, index)
    end
    
    true
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
ts-delayed-delta-1.1.2 lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb
ts-delayed-delta-1.1.1 lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb
ts-delayed-delta-1.1.0 lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb
ts-delayed-delta-1.0.4 lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb
ts-delayed-delta-1.0.3 lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb
namxam-ts-delayed-delta-1.0.3 lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb