def search_json(request): try: start = int(request.GET.get('start', 0)) except ValueError: start = 0 try: rows = int(request.GET.get('rows', 10)) except ValueError: rows = 10 if rows > 100: rows = 100 query = request.GET.get('q', '*') results = search_index(q=query, start=start, rows=rows) items = [] for r in results: full_path = r['id'] item_data = simplejson.loads(r['metadata_json']) item_data['timestamp'] = dateutil.parser.parse(item_data['timestamp']) items.append(item_data) next_start = start + rows if next_start >= results.hits: next_start = None previous_start = start - rows if previous_start < 0: previous_start = 0 output = {'content_items': items, 'next_start': next_start, 'previous_start': previous_start, 'hits': results.hits} response = HttpResponse(simplejson.dumps(output, default=json_handler, indent=4), mimetype='application/json') response['Access-Control-Allow-Origin'] = '*' return response
def list_all(args): results = search_index(q='*', start=0, rows=2000000) for result in results: print result['id'] print print 'Found %d results.' % len(results)
def search(request): start = request.GET.get('start', '') view = request.GET.get('view', 'icon') try: start = int(request.GET.get('start', '0')) except ValueError: start = 0 try: count = int(request.GET.get('count', '25')) except ValueError: count = 25 if count > 100: count = 100 query = request.GET.get('q', '*') results = search_index(q=query, start=start, rows=count) items = [] for r in results: full_path = r['id'] item_data = simplejson.loads(r['metadata_json']) item_data['timestamp'] = dateutil.parser.parse(item_data['timestamp']) items.append(item_data) next_start = start + count if next_start >= results.hits: next_start = None previous_start = start - count if previous_start < 0: previous_start = 0 if previous_start == start: previous_start = None view_params = { 'view': view, 'hits': results.hits, 'get_params': request.GET, 'start_display': start + 1, 'end_display': start + len(results), 'next_start': next_start, 'previous_start': previous_start, 'query': query, 'content_items': items } return render_to_response('content/search.html', view_params, context_instance = RequestContext(request))