commit 7c43bce5ddfba3122da7f107515464c13a156ca1
parent 086d8d0b0e67f10002f30168da78cebd60e99b8e
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date: Sat, 20 Jun 2009 13:50:11 -0700
remove last external uses of ferret docid
Diffstat:
4 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/bin/sup-sync-back b/bin/sup-sync-back
@@ -17,7 +17,7 @@ def die msg
end
def has_any_from_source_with_label? index, source, label
query = { :source_id => source.id, :label => label, :limit => 1 }
- not Enumerable::Enumerator.new(index, :each_docid, query).map.empty?
+ not Enumerable::Enumerator.new(index, :each_id, query).map.empty?
end
opts = Trollop::options do
diff --git a/bin/sup-tweak-labels b/bin/sup-tweak-labels
@@ -83,14 +83,14 @@ begin
query += ' ' + opts[:query] if opts[:query]
parsed_query = index.parse_query query
- docs = Enumerable::Enumerator.new(index, :each_docid, parsed_query).map
- num_total = docs.size
+ ids = Enumerable::Enumerator.new(index, :each_id, parsed_query).map
+ num_total = ids.size
$stderr.puts "Found #{num_total} documents across #{source_ids.length} sources. Scanning..."
num_changed = num_scanned = 0
last_info_time = start_time = Time.now
- docs.each do |id|
+ ids.each do |id|
num_scanned += 1
m = index.build_message id
diff --git a/lib/sup/ferret_index.rb b/lib/sup/ferret_index.rb
@@ -301,16 +301,10 @@ class FerretIndex < BaseIndex
contacts.keys.compact
end
- def each_docid query={}
+ def each_id query={}
ferret_query = build_ferret_query query
results = @index_mutex.synchronize { @index.search ferret_query, :limit => (query[:limit] || :all) }
- results.hits.map { |hit| yield hit.doc }
- end
-
- def each_message query={}
- each_docid query do |docid|
- yield build_message(docid)
- end
+ results.hits.map { |hit| yield @index[hit.doc][:message_id] }
end
def optimize
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
@@ -177,14 +177,16 @@ EOS
unimplemented
end
- ## Yield each docid matching query
- def each_docid query={}
+ ## Yield each message-id matching query
+ def each_id query={}
unimplemented
end
- ## Yield each messages matching query
- def each_message query={}
- unimplemented
+ ## Yield each message matching query
+ def each_message query={}, &b
+ each_id query do |id|
+ yield build_message(id)
+ end
end
## Implementation-specific optimization step