lib/fuzzily/searchable.rb in fuzzily-0.1.0 vs lib/fuzzily/searchable.rb in fuzzily-0.2.0
- old
+ new
@@ -45,12 +45,12 @@
trigram_class = trigram_class_name.constantize
self.scoped(:include => trigram_association).find_in_batches(:batch_size => 100) do |batch|
inserts = []
batch.each do |record|
- record.send(field).extend(String).trigrams.each do |trigram|
- inserts << sanitize_sql_array(['(?,?,?,?,?)', self.name, record.id, field.to_s, 1, trigram])
+ record.send(field).extend(String).scored_trigrams.each do |trigram, score|
+ inserts << sanitize_sql_array(['(?,?,?,?,?)', self.name, record.id, field.to_s, score, trigram])
end
end
trigram_class.transaction do
batch.each { |record| record.send(trigram_association).delete_all }
@@ -64,11 +64,11 @@
end
end
define_method update_trigrams_method do
self.send(trigram_association).delete_all
- self.send(field).extend(String).trigrams.each do |trigram|
- self.send(trigram_association).create!(:score => 1, :trigram => trigram, :owner_type => self.class.name)
+ self.send(field).extend(String).scored_trigrams.each do |trigram, score|
+ self.send(trigram_association).create!(:score => score, :trigram => trigram, :owner_type => self.class.name)
end
end
after_save do |record|
next unless record.send("#{field}_changed?".to_sym)