From 32b8090ddb9fce168b0056ff042f7b3f73f95afa Mon Sep 17 00:00:00 2001 From: Chris Anderson Date: Sun, 1 Jun 2008 10:08:38 -0700 Subject: [PATCH] word count smaller chunks --- examples/word_count/word_count.rb | 50 +++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/examples/word_count/word_count.rb b/examples/word_count/word_count.rb index 1ef9175..201f8bd 100644 --- a/examples/word_count/word_count.rb +++ b/examples/word_count/word_count.rb @@ -2,10 +2,10 @@ require File.dirname(__FILE__) + '/../../couchrest' couch = CouchRest.new("http://localhost:5984") db = couch.database('word-count-example') -db.delete! rescue nil -db = couch.create_db('word-count-example') +# db.delete! rescue nil +# db = couch.create_db('word-count-example') -['da-vinci.txt', 'outline-of-science.txt', 'ulysses.txt'].each do |book| +%w{america.txt da-vinci.txt outline-of-science.txt ulysses.txt}.each do |book| title = book.split('.')[0] puts title File.open(File.join(File.dirname(__FILE__),book),'r') do |file| @@ -13,7 +13,7 @@ db = couch.create_db('word-count-example') chunk = 0 while line = file.gets lines << line - if lines.length > 100 + if lines.length > 10 db.save({ :title => title, :chunk => chunk, @@ -26,27 +26,27 @@ db = couch.create_db('word-count-example') end end -word_count = { - :map => 'function(doc){ - var words = doc.text.split(/\W/); - words.forEach(function(word){ - if (word.length > 0) emit([word,doc.title],1); - }); - }', - :reduce => 'function(key,combine){ - return sum(combine); - }' -} - -db.delete db.get("_design/word_count") rescue nil - -db.save({ - "_id" => "_design/word_count", - :views => { - :count => word_count, - :words => {:map => word_count[:map]} - } -}) +# word_count = { +# :map => 'function(doc){ +# var words = doc.text.split(/\W/); +# words.forEach(function(word){ +# if (word.length > 0) emit([word,doc.title],1); +# }); +# }', +# :reduce => 'function(key,combine){ +# return sum(combine); +# }' +# } +# +# db.delete db.get("_design/word_count") rescue nil +# +# db.save({ +# "_id" => "_design/word_count", +# :views => { +# :count => word_count, +# :words => {:map => word_count[:map]} +# } +# }) puts "The books have been stored in your CouchDB. To initiate the MapReduce process, visit http://localhost:5984/_utils/ in your browser and click 'word-count-example', then select view 'words' or 'count'. The process could take about 15 minutes on an average MacBook."