You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
require 'open-uri'
|
|
|
|
require 'rexml/document'
|
|
|
|
|
|
|
|
|
|
|
|
class SolrController < ApplicationController
|
|
|
|
$select_url = 'http://localhost:8983/solr/select/'
|
|
|
|
|
|
|
|
def index
|
|
|
|
@search = request[:q]
|
|
|
|
if @search != nil
|
|
|
|
raw_results = open("#{$select_url}?q=#{@search}&indent=on").read
|
|
|
|
xml_results = REXML::Document.new raw_results
|
|
|
|
|
|
|
|
@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
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|