Revision: 6091
Updated Code
at April 27, 2008 07:22 by narkisr
Updated Code
require 'rubygems'
require 'ferret'
require 'find'
include Ferret
index = Index::Index.new(:default_field => 'content', :path => '/tmp/index_folder')
ini = Time.now
numFiles=0
IndexedExts=['.java','.properties']
Find.find('/code/to/index') do |path|
if(IndexedExts.find {|ext| path.include?(ext)}==nil)
next
end
puts "Indexing: #{path}"
numFiles=numFiles+1
if FileTest.file? path
File.open(path) do |file|
index.add_document(:file => path, :content => file.readlines)
end
end
end
elapsed = Time.now - ini
puts "Files: #{numFiles}"
puts "Elapsed time: #{elapsed} secs\n"
Revision: 6090
Updated Code
at April 27, 2008 07:20 by narkisr
Updated Code
# This is the search.rb
require 'rubygems'
require 'ferret'
require 'find'
wot = ARGV[0]
if wot.nil?
puts "use: search.rb <query>"
exit
end
index = Ferret::Index::Index.new(:default_field => 'content', :path => 'C:\\ferret\\index')
ini = Time.now
puts "Searching.."
docs=0
index.search_each(wot, options={:limit=>:all}) do |doc, score|
res= <<STRING_END
-------------------------------------------------------
#{File.new(index[doc]['file']).base_name} :
#{index.highlight(wot, doc,:field => :content,:pre_tag => "->>",:post_tag => "<<-")}
STRING_END
puts res
docs+=1
end
elapsed = Time.now - ini
puts "Elapsed time: #{elapsed} secs\n"
puts "Documents found: #{docs}"
Revision: 6089
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 27, 2008 07:19 by narkisr
Initial Code
# This is the search.rb
require 'rubygems'
require 'ferret'
require 'find'
wot = ARGV[0]
if wot.nil?
puts "use: search.rb <query>"
exit
end
index = Ferret::Index::Index.new(:default_field => 'content', :path => 'C:\\ferret\\index')
ini = Time.now
puts "Searching.."
docs=0
index.search_each(wot, options={:limit=>:all}) do |doc, score|
res= <<STRING_END
-------------------------------------------------------
#{File.new(index[doc]['file']).base_name} :
#{index.highlight(wot, doc,:field => :content,:pre_tag => "->>",:post_tag => "<<-")}
STRING_END
puts res
docs+=1
end
elapsed = Time.now - ini
puts "Elapsed time: #{elapsed} secs\n"
puts "Documents found: #{docs}"
# This is the index.rb
require 'rubygems'
require 'ferret'
require 'find'
include Ferret
index = Index::Index.new(:default_field => 'content', :path => 'C:\\ferret\\index')
ini = Time.now
numFiles=0
IndexedExts=['.as','.properties']
Find.find('D:\\dev\\ccmTrunk\\Starteam\\ws\\assets\\client\\') do |path|
if(IndexedExts.find {|ext| path.include?(ext)}==nil)
next
end
puts "Indexing: #{path}"
numFiles=numFiles+1
if FileTest.file? path
File.open(path) do |file|
index.add_document(:file => path, :content => file.readlines)
end
end
end
elapsed = Time.now - ini
puts "Files: #{numFiles}"
puts "Elapsed time: #{elapsed} secs\n"
Initial URL
Initial Description
This is a simple example for building a search index with the Ferret library (based upon http://kasparov.skife.org/blog/src/ruby/ferret.html).
Initial Title
Ruby Ferret simple indexing and search example part 1
Initial Tags
search, ruby
Initial Language
Ruby