Sha256: 7bf878f6bed2531a1a8c756cb2d0085d411f73fc221b498f6e837d3eddf84670

Contents?: true

Size: 519 Bytes

Versions: 13

Compression:

Stored size: 519 Bytes

Contents

module Searchkick
  module Similar

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

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

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
searchkick-0.8.0 lib/searchkick/similar.rb
searchkick-0.7.9 lib/searchkick/similar.rb
searchkick-0.7.8 lib/searchkick/similar.rb
searchkick-0.7.7 lib/searchkick/similar.rb
searchkick-0.7.6 lib/searchkick/similar.rb
searchkick-0.7.5 lib/searchkick/similar.rb
searchkick-0.7.4 lib/searchkick/similar.rb
searchkick-0.7.3 lib/searchkick/similar.rb
searchkick-0.7.2 lib/searchkick/similar.rb
searchkick-0.7.1 lib/searchkick/similar.rb
searchkick-0.7.0 lib/searchkick/similar.rb
searchkick-0.6.3 lib/searchkick/similar.rb
searchkick-0.6.2 lib/searchkick/similar.rb