@@ -489,9 +489,10 @@ def index():
491 search_query = None
491 search_query = None
492+ raw_text_query = None
492 result_container = None
493 result_container = None
494− search_query = get_search_query_from_webapp(request.preferences, request.form)
495+ search_query, raw_text_query = get_search_query_from_webapp(request.preferences, request.form)
495 # search = Search(search_query) # without plugins
496 # search = Search(search_query) # without plugins
496 search = SearchWithPlugins(search_query, request.user_plugins, request)
497 search = SearchWithPlugins(search_query, request.user_plugins, request)
497 result_container = search.search()
498 result_container = search.search()
@@ -580,17 +581,25 @@ def index():
581 return Response(response_rss, mimetype='text/xml')
582 return Response(response_rss, mimetype='text/xml')
584+ # HTML output format
586+ # suggestions: use RawTextQuery to get the suggestion URLs with the same bang
587+ suggestion_urls = map(lambda suggestion: {
588+ 'url': raw_text_query.changeSearchQuery(suggestion).getFullQuery(),
591+ result_container.suggestions)
583 return render(
593 return render(
584 'results.html',
594 'results.html',
585 results=results,
595 results=results,
586 q=request.form['q'],
596 q=request.form['q'],
587− query_prefix=u''.join((request.form['q']).rsplit(search_query.query.decode('utf-8'), 1)),
588 selected_categories=search_query.categories,
597 selected_categories=search_query.categories,
589 pageno=search_query.pageno,
598 pageno=search_query.pageno,
590 time_range=search_query.time_range,
599 time_range=search_query.time_range,
591 number_of_results=format_decimal(number_of_results),
600 number_of_results=format_decimal(number_of_results),
592 advanced_search=advanced_search,
601 advanced_search=advanced_search,
593− suggestions=result_container.suggestions,
602+ suggestions=suggestion_urls,
594 answers=result_container.answers,
603 answers=result_container.answers,
595 corrections=result_container.corrections,
604 corrections=result_container.corrections,
596 infoboxes=result_container.infoboxes,
605 infoboxes=result_container.infoboxes,