Sha256: 12966ab9b597c3846a1f5fdb905fca068501ebe5a809b82e7a062289191c284d

Contents?: true

Size: 547 Bytes

Versions: 4

Compression:

Stored size: 547 Bytes

Contents

module Searchkick
  module Similar

    def similar(options = {})
      like_text = self.class.searchkick_index.retrieve(document_type, id).to_hash
        .keep_if{|k,v| k[0] != "_" and (!options[:fields] or options[:fields].map(&:to_sym).include?(k)) }
        .values.compact.join(" ")

      # TODO deep merge method
      options[:where] ||= {}
      options[:where][:_id] ||= {}
      options[:where][:_id][:not] = id
      options[:limit] ||= 10
      options[:similar] = true
      self.class.search(like_text, options)
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
searchkick-0.3.5 lib/searchkick/similar.rb
searchkick-0.3.4 lib/searchkick/similar.rb
searchkick-0.3.3 lib/searchkick/similar.rb
searchkick-0.3.2 lib/searchkick/similar.rb