Skip to content

Instantly share code, notes, and snippets.

@jonpaul
Created December 15, 2011 16:35
Show Gist options
  • Save jonpaul/1481759 to your computer and use it in GitHub Desktop.
Save jonpaul/1481759 to your computer and use it in GitHub Desktop.
def search
search_terms = params[:query]
simple_search_bucket(search_terms)
search_results = Hash.new
orgs_array.each do |uid|
search_results[uid] = {}
search_results[uid][:search] = Listing.search do
size 3
query {
boolean do
should { string "short_description:\"#{search_terms}\"" }
should { string "full_description:\"#{search_terms}\"" }
should { string "manufacturers_name:\"#{search_terms}\"" }
should { string "manufacturers_part_num:\"#{search_terms}\"" }
should { string "suppliers_name:\"#{search_terms}\"" }
should { string "suppliers_part_num:\"#{search_terms}\"" }
should { string "klass_attributes:\"#{search_terms}\"" }
should { string "united_nations_spsc:\"#{search_terms}\"" }
end
}
filter :terms, :organization_id => ["#{uid}"]
facet 'companies' do
terms :organization_id
end
end
search_results[uid][:organization] = Organization.find_by_id(uid)
end
@results = Kaminari.paginate_array(search_results.to_a).page(params[:page]).per(2)
end
def simple_search_bucket(search_terms)
orgs = Listing.search do
query {
boolean do
should { string "short_description:\"#{search_terms}\"" }
should { string "full_description:\"#{search_terms}\"" }
should { string "manufacturers_name:\"#{search_terms}\"" }
should { string "manufacturers_part_num:\"#{search_terms}\"" }
should { string "suppliers_name:\"#{search_terms}\"" }
should { string "suppliers_part_num:\"#{search_terms}\"" }
should { string "klass_attributes:\"#{search_terms}\"" }
should { string "united_nations_spsc:\"#{search_terms}\"" }
end
}
facet 'companies' do
terms :organization_id
end
end
orgs_array = []
orgs.facets['companies']['terms'].map { |e| orgs_array << e.values.first }
orgs_array
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment