argh trying to move to new version of rails
[zcc.git] / rails-1.1.6 / app / controllers / search_controller.rb
blob8b07bd0cd8d6e8e4766aadcf4ae1b68271157255
1 class SearchController < ApplicationController
2   def found
3     start_time = Time.now
4     @data = params[:term] ? params[:term] : "beer"
5     @form_value = @data.gsub("\"","&quot;")
6     @start = params[:start] ? params[:start].to_i : 0
7     @per_page = params[:per_page] ? params[:per_page].to_i : 20
8     #data_a = []
9     #data_a = @data.split("\s") unless @data.nil?
10     data_a = split_params(@data)
11     puts data_a.inspect
12     if data_a.size > 0
13       #search_term = "@attr 2=102 #{" @and " * (data_a.size - 1)} @attr 1=1016 " + data_a.join(" @attr 1=1016 ")
14       search_term = "@attr 2=102 #{" @and " * (data_a.size - 1)} "
15       data_a.each{|t| search_term << ' @attr 1=1016 "' + t + '"'}
16     else
17       search_term = '@attr 1=4 ""'
18     end
19     puts search_term
20     conn = ZOOM::Connection.new
21     conn.connect("localhost", 9999)
22     conn.set_option('charset', 'UTF-8')
23     conn.preferred_record_syntax = 'XML'
24     conn.database_name = "zcc"
25     
26     puts "Searching"
27     rset = conn.search(search_term)
28     @rset_size = rset.size
29     
30     rset_recs = rset[@start, @per_page]
31     
32     @total_records = []
33     all = ''
34     rset_recs.each do |rec|
35       #puts rec
36       begin
37         #marc_record = ZCC.convert_char(rec)
38         ##@total_records << MARC::Record.new_from_marc(rec.raw)
39         all << rec.xml
40         #puts @total_records
41       rescue
42         next
43       end
44       #@total_records << marc_record
45     end
46     @total_records = MARC::XMLReader.new(StringIO.new(all))
47     #puts @total_records
48     #puts "gets here"
49     @time_difference = Time.now - start_time
50   end
52   def split_params(params)
53     # Find all phrases enclosed in quotes and pull
54     # them into a flat array of phrases
55     phrases = params.scan(/"(.*?)"/).flatten
56   
57     # Remove those phrases from the original string
58     left_over = params.gsub(/"(.*?)"/, "").squeeze(" ").strip
59   
60     # Break up the remaining keywords on whitespace
61     keywords = left_over.split(/ /)
62   
63     # Return one single array of key phrases
64     keywords + phrases
65   end
66 end