module SolrHelper $select_url = 'http://localhost:8983/solr/select/' $redis = '/home/me/repos/redis.git/src/redis-cli' def get_results(search) cached = `#{$redis} GET "query:#{search}"` if cached.strip().length > 0 # puts "cached=#{cached}" xml_results = REXML::Document.new cached else raw_results = open("#{$select_url}?q=#{search}").read # puts "caching '#{raw_results}'" `#{$redis} SET "query:#{search}" '#{raw_results}'` xml_results = REXML::Document.new raw_results end results = [] REXML::XPath.each(xml_results, '//result/doc') do |doc| results.push({ :id => doc.elements['./str[@name="id"]'], :description => doc.elements['./str[@name="name"]'] }) end return results end end