stadtratmonitor/app/controllers/search_controller.rb

32 lines
753 B
Ruby
Raw Normal View History

SearchFacet = Struct.new("SearchFacet", :term, :count) do
def term_with_count
"#{term} (#{count})"
end
end
class SearchController < ApplicationController
def index
2015-06-22 20:38:24 +02:00
@paper_type = params[:paper_type]
2015-06-22 20:43:06 +02:00
@originator = params[:originator]
2015-10-05 21:14:24 +02:00
options = params.slice(:paper_type, :originator, :sort_by)
2015-06-22 20:38:24 +02:00
@show_filters = true
2015-06-22 20:38:24 +02:00
@response = Paper.search(params[:q], options)
2015-06-13 21:18:55 +02:00
@papers = @response.page(params[:page]).results
2015-06-22 21:11:51 +02:00
@paper_type_facets = extract_facets('paper_types')
@originator_facets = extract_facets('originators')
end
2015-06-22 21:11:51 +02:00
private
def extract_facets(name)
@response.
response['aggregations'][name.to_s][name.to_s]['buckets'].
map {|m| SearchFacet.new(m['key'], m['doc_count'])}
2015-06-22 21:11:51 +02:00
end
end