def searchservice(request): q = urllib.unquote(request.path.split('/')[2].split( '_')[0]) #Example: unquote('/%7Econnolly/') yields '/~connolly/'. q = q.strip( ) #Return a copy of the string with the leading and trailing characters removed. article = q resource = defineIndex() index = resource['index'] results = [] if q != '': q = q.split(' ') finalq = ' AND text:'.join( q) #Example 'juan AND text:carlos AND text:cayetano' finalq += "*" searchresults = index.search('text:%s' % finalq, fetch_fields=[ 'text', 'img', 'description', 'tags', 'state', 'price' ]) cats = categories_matches() return render_to_response('search/results.html', { 'searchresults': searchresults, 'article': article, 'cats': cats }, context_instance=RequestContext(request)) return HttpResponse('Sin Resultados')
def searchservice(request): q = urllib.unquote(request.path.split('/')[2].split('_')[0]) #Example: unquote('/%7Econnolly/') yields '/~connolly/'. q = q.strip() #Return a copy of the string with the leading and trailing characters removed. article = q resource = defineIndex() index = resource['index'] results = [] if q != '': q = q.split(' ') finalq = ' AND text:'.join(q) #Example 'juan AND text:carlos AND text:cayetano' finalq += "*" searchresults = index.search( 'text:%s' % finalq , fetch_fields=['text', 'img','description', 'tags','state', 'price']) cats = categories_matches() return render_to_response('search/results.html', {'searchresults' : searchresults, 'article' : article, 'cats' : cats }, context_instance = RequestContext(request) ) return HttpResponse('Sin Resultados')
def search_filters(request, filters): from howmuch.search.functions import * index = defineIndex()['index'] article = "" filters = convert_filters(filters) dic={} custom_filter=0 minrange=None maxrange=None if get_state_filter(filters) != None: dic.update({'state':[get_state_filter(filters)]}) if get_rangePrice_filter(filters) != None: if get_rangePrice_filter(filters) != "0to500" and get_rangePrice_filter(filters) != "500to1000" and get_rangePrice_filter(filters) != "1000to5000" and get_rangePrice_filter(filters) != "gte5000": custom_filter=1 if get_rangePrice_filter(filters).split("to")[0] != '': minrange=get_rangePrice_filter(filters).split("to")[0] if get_rangePrice_filter(filters).split("to")[1] != '': maxrange=get_rangePrice_filter(filters).split("to")[1] if minrange>maxrange and minrange != None and maxrange != None: temp=minrange minrange=maxrange maxrange=temp else: dic.update({'rangePrice':[get_rangePrice_filter(filters)]}) if get_category_filter(filters) != None: dic.update({'category':[get_category_filter(filters)]}) if custom_filter == 0: searchresults = index.search('all:1', category_filters=dic, fetch_fields=['text', 'img','description', 'tags','state', 'price']) else: searchresults = index.search('all:1', category_filters=dic, fetch_fields=['text', 'img','description', 'tags','state', 'price']) lst=[] if minrange != None: if maxrange != None: for x in searchresults['results']: if int(x['price']) > int(maxrange) or int(x['price']) < int(minrange): lst.append(x) else: for x in searchresults['results']: if int(x['price']) < int(minrange): lst.append(x) else: if maxrange != None: for x in searchresults['results']: if int(x['price']) > int(maxrange): lst.append(x) for y in lst: searchresults['results'].remove(y) cats = categories_matches() if searchresults['matches'] == 0: return render_to_response('search/results.html', {'searchresults':searchresults, 'article' : article, 'filtros' : True, 'filters' : filters, 'cats' : cats }, context_instance=RequestContext(request)) else: if get_rangePrice_filter(filters) != None: return render_to_response('search/results.html', {'searchresults':searchresults, 'article' : article, 'filtros' : True, 'filters' : filters, 'cats' : searchresults['facets']['category'].items(), 'rangePrice' : searchresults['facets']['rangePrice'].items() }, context_instance=RequestContext(request)) else: return render_to_response('search/results.html', {'searchresults':searchresults, 'article' : article, 'filtros' : True, 'filters' : filters, 'cats' : cats, 'rangePrice' : searchresults['facets']['rangePrice'].items() }, context_instance=RequestContext(request)) return HttpResponse('Sin Resultados')
def search_filters(request, filters): from howmuch.search.functions import * index = defineIndex()['index'] article = "" filters = convert_filters(filters) dic = {} custom_filter = 0 minrange = None maxrange = None if get_state_filter(filters) != None: dic.update({'state': [get_state_filter(filters)]}) if get_rangePrice_filter(filters) != None: if get_rangePrice_filter( filters) != "0to500" and get_rangePrice_filter( filters) != "500to1000" and get_rangePrice_filter( filters) != "1000to5000" and get_rangePrice_filter( filters) != "gte5000": custom_filter = 1 if get_rangePrice_filter(filters).split("to")[0] != '': minrange = get_rangePrice_filter(filters).split("to")[0] if get_rangePrice_filter(filters).split("to")[1] != '': maxrange = get_rangePrice_filter(filters).split("to")[1] if minrange > maxrange and minrange != None and maxrange != None: temp = minrange minrange = maxrange maxrange = temp else: dic.update({'rangePrice': [get_rangePrice_filter(filters)]}) if get_category_filter(filters) != None: dic.update({'category': [get_category_filter(filters)]}) if custom_filter == 0: searchresults = index.search('all:1', category_filters=dic, fetch_fields=[ 'text', 'img', 'description', 'tags', 'state', 'price' ]) else: searchresults = index.search('all:1', category_filters=dic, fetch_fields=[ 'text', 'img', 'description', 'tags', 'state', 'price' ]) lst = [] if minrange != None: if maxrange != None: for x in searchresults['results']: if int(x['price']) > int(maxrange) or int( x['price']) < int(minrange): lst.append(x) else: for x in searchresults['results']: if int(x['price']) < int(minrange): lst.append(x) else: if maxrange != None: for x in searchresults['results']: if int(x['price']) > int(maxrange): lst.append(x) for y in lst: searchresults['results'].remove(y) cats = categories_matches() if searchresults['matches'] == 0: return render_to_response('search/results.html', { 'searchresults': searchresults, 'article': article, 'filtros': True, 'filters': filters, 'cats': cats }, context_instance=RequestContext(request)) else: if get_rangePrice_filter(filters) != None: return render_to_response( 'search/results.html', { 'searchresults': searchresults, 'article': article, 'filtros': True, 'filters': filters, 'cats': searchresults['facets']['category'].items(), 'rangePrice': searchresults['facets']['rangePrice'].items() }, context_instance=RequestContext(request)) else: return render_to_response( 'search/results.html', { 'searchresults': searchresults, 'article': article, 'filtros': True, 'filters': filters, 'cats': cats, 'rangePrice': searchresults['facets']['rangePrice'].items() }, context_instance=RequestContext(request)) return HttpResponse('Sin Resultados')