Я ищу, чтобы создать функцию поиска для моего сайта флеш-игры.
Одной из проблем с сайтом является то, что вам сложно найти нужную игру, так как пользователи должны перейти в алфавитном списке, чтобы найти тот, который им нужен.
Он запускается с Google App Engine, написанным на python, с использованием платформы webapp.
По крайней мере, мне нужен простой способ поиска игр по их имени. Возможно, было бы проще выполнить поиск в Javascript с его внешнего вида. Я бы предпочел функциональность автозаполнения. Я попытался выяснить, как это сделать, и кажется, что единственный способ - создать огромный индекс с каждым именем, разбитым на различные этапы ввода ( "S", "Sh", "Sho"... "Герой корзины покупок" ).
Есть ли способ сделать это просто и легко? Я начинаю думать, что мне нужно будет создать веб-сервис на сервере PHP + MySql и искать его.
Я написал код ниже, чтобы справиться с этим. В принципе, я сохраняю все возможные слова "начинается" в списке вместо целых предложений. Это как работает автозаполнение jquery этот сайт.
import unicodedata
import re
splitter = re.compile(r'[\s|\-|\)|\(|/]+')
def remove_accents(text):
nkfd_form = unicodedata.normalize('NFKD', unicode(text))
return u"".join([c for c in nkfd_form if not unicodedata.combining(c)])
def get_words(text):
return [s.lower() for s in splitter.split(remove_accents(text)) if s!= '']
def get_unique_words(text):
word_set = set(get_words(text))
return word_set
def get_starts(text):
word_set = get_unique_words(text)
starts = set()
for word in word_set:
for i in range(len(word)):
starts.add(word[:i+1])
return sorted(starts)
Вы посмотрели gae-search? Я считаю, что функция автозаполнения Django + jQuery не является частью бесплатной версии (она только в премиальной версии для оплаты), но, возможно, она стоит немного денег для вас.