sources.each do |source|
$stderr.puts "Scanning #{source}..."
+
+ unless ((opts[:delete_deleted] || opts[:move_deleted]) && index.has_any_from_source_with_label?(source, :deleted)) || ((opts[:delete_spam] || opts[:move_spam]) && index.has_any_from_source_with_label?(source, :spam))
+ $stderr.puts "Nothing to do from this source; skipping"
+ next
+ end
+
source.reset!
num_deleted = num_moved = num_scanned = 0
@sources_dirty = false
end
+ def has_any_from_source_with_label? source, label
+ q = Ferret::Search::BooleanQuery.new
+ q.add_query Ferret::Search::TermQuery.new("source_id", source.id.to_s), :must
+ q.add_query Ferret::Search::TermQuery.new("label", label.to_s), :must
+ num_results_for(:qobj => q) > 0
+ end
+
protected
def parse_user_query_string str; @qparser.parse str; end