From mboxrd@z Thu Jan 1 00:00:00 1970 From: rlane@club.cc.cmu.edu (Rich Lane) Date: Sat, 20 Jun 2009 13:50:11 -0700 Subject: [sup-talk] [PATCH 12/18] remove last external uses of ferret docid In-Reply-To: <1245531017-9907-12-git-send-email-rlane@club.cc.cmu.edu> References: <1245531017-9907-1-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-2-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-3-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-4-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-5-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-6-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-7-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-8-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-9-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-10-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-11-git-send-email-rlane@club.cc.cmu.edu> <1245531017-9907-12-git-send-email-rlane@club.cc.cmu.edu> Message-ID: <1245531017-9907-13-git-send-email-rlane@club.cc.cmu.edu> --- bin/sup-sync-back | 2 +- bin/sup-tweak-labels | 6 +++--- lib/sup/ferret_index.rb | 10 ++-------- lib/sup/index.rb | 12 +++++++----- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/bin/sup-sync-back b/bin/sup-sync-back index 679e03a..8aa2039 100755 --- 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 index 95a3b03..a8115ea 100755 --- 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 index 53c19e0..a2c30ab 100644 --- 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 index be0e870..45382f1 100644 --- 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 -- 1.6.0.4