def read(self, request): query = request.GET.get('q') page = request.GET.get('p', 1) results_per_page = request.GET.get('n', 50) order = request.GET.get('o') if not query: return 'Query cannot be empty.' else: query = query.encode('utf-8') try: n = int(results_per_page) except ValueError: n = 10 if 1 > n > 500: n = 1 try: page = int(page) except ValueError: page = 1 if page < 1: page = 1 return solrutils.select(query, results_per_page, page, order)
def search(request): if request.method != 'GET': return HttpResponseNotAllowed(['GET']) query = request.GET.get('q') sort = request.GET.get('o') type_ = request.GET.get('type') try: page_number = int(request.GET.get('p', '1')) except ValueError: page_number = 1 try: results_per_page = int(request.GET.get('per_page', 16)) except ValueError: results_per_page = 16 filters = { 'Type': type_, } query = solrutils.build_query(query, filters) # Query Solr for results solr_dict_resp = solrutils.select(query, results_per_page, page_number, sort) docs = solrutils.SolrPaginator(solr_dict_resp, page_number) template_data = { 'docs': docs, 'anonymous': _(u'anônimo'), 'q': query, 'type': type_, } return render_to_response('search.html', template_data, RequestContext(request))