diff --git a/searx/autocomplete.py b/searx/autocomplete.py
index f8a45b3ec..ff8958500 100644
--- a/searx/autocomplete.py
+++ b/searx/autocomplete.py
@@ -16,6 +16,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
'''
+import sys
from lxml import etree
from json import loads
from searx import settings
@@ -26,6 +27,9 @@ from searx.engines import (
from searx.poolrequests import get as http_get
from searx.url_utils import urlencode
+if sys.version_info[0] == 3:
+ unicode = str
+
def get(*args, **kwargs):
if 'timeout' not in kwargs:
diff --git a/searx/templates/oscar/results.html b/searx/templates/oscar/results.html
index ee1052dba..3a1f84067 100644
--- a/searx/templates/oscar/results.html
+++ b/searx/templates/oscar/results.html
@@ -21,7 +21,7 @@
{% for correction in corrections %}
{% endfor %}
@@ -118,7 +118,7 @@
{% for suggestion in suggestions %}
{% endfor %}
diff --git a/searx/webapp.py b/searx/webapp.py
index 8290b6822..4c983509d 100644
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -584,6 +584,7 @@ def index():
'results.html',
results=results,
q=request.form['q'],
+ query_prefix=u''.join((request.form['q']).rsplit(search_query.query.decode('utf-8'), 1)),
selected_categories=search_query.categories,
pageno=search_query.pageno,
time_range=search_query.time_range,
@@ -636,8 +637,11 @@ def autocompleter():
# parse searx specific autocompleter results like !bang
raw_results = searx_bang(raw_text_query)
- # normal autocompletion results only appear if max 3 inner results returned
- if len(raw_results) <= 3 and completer:
+ # normal autocompletion results only appear if no inner results returned
+ # and there is a query part besides the engine and language bangs
+ if len(raw_results) == 0 and completer and (len(raw_text_query.query_parts) > 1 or
+ (len(raw_text_query.languages) == 0 and
+ not raw_text_query.specific)):
# get language from cookie
language = request.preferences.get_value('language')
if not language or language == 'all':