コード例 #1
0
ファイル: views.py プロジェクト: hnkien/sirikata-cdn
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
コード例 #2
0
ファイル: searchtool.py プロジェクト: hnkien/sirikata-cdn
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)
コード例 #3
0
ファイル: views.py プロジェクト: hnkien/sirikata-cdn
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))