@@ -584,6 +584,7 @@ def index():
584 'results.html',
584 'results.html',
585 results=results,
585 results=results,
586 q=request.form['q'],
586 q=request.form['q'],
587+ query_prefix=u''.join((request.form['q']).rsplit(search_query.query.decode('utf-8'), 1)),
587 selected_categories=search_query.categories,
588 selected_categories=search_query.categories,
588 pageno=search_query.pageno,
589 pageno=search_query.pageno,
589 time_range=search_query.time_range,
590 time_range=search_query.time_range,
@@ -636,8 +637,11 @@ def autocompleter():
636 # parse searx specific autocompleter results like !bang
637 # parse searx specific autocompleter results like !bang
637 raw_results = searx_bang(raw_text_query)
638 raw_results = searx_bang(raw_text_query)
639− # normal autocompletion results only appear if max 3 inner results returned
640+ # normal autocompletion results only appear if no inner results returned
641+ # and there is a query part besides the engine and language bangs
640− if len(raw_results) <= 3 and completer:
642+ if len(raw_results) == 0 and completer and (len(raw_text_query.query_parts) > 1 or
643+ (len(raw_text_query.languages) == 0 and
644+ not raw_text_query.specific)):
641 # get language from cookie
645 # get language from cookie
642 language = request.preferences.get_value('language')
646 language = request.preferences.get_value('language')
643 if not language or language == 'all':
647 if not language or language == 'all':