similar.rb
525 Bytes
module Searchkick
module Similar
def similar(options = {})
like_text = 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