首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GAE简单搜索+自动补全

GAE简单搜索+自动补全
EN

Stack Overflow用户
提问于 2010-01-17 04:00:38
回答 2查看 1.1K关注 0票数 1

我希望为我的flash游戏网站创建一个搜索功能。

该网站的问题之一是很难找到你想要的特定游戏,因为用户必须进入字母顺序的列表才能找到他们想要的游戏。

它是用python编写的Google App Engine运行的,使用的是webapp框架。

至少我需要一种简单的方法来搜索游戏的名字。从外观上看,在Javascript中进行搜索可能更容易。我更喜欢自动补全功能。我试图弄清楚如何做这件事,似乎唯一的方法是创建一个巨大的索引,每个名字被分成不同的输入阶段("S","Sh","Sho“……“购物车英雄”)。

有没有什么方法可以简单容易地做到这一点呢?我开始考虑我将不得不在PHP+MySql服务器上创建一个web服务并使用它进行搜索。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-17 04:34:40

我已经写了下面的代码来处理这个问题。基本上,我将所有可能的单词“start”保存在一个列表中,而不是整个句子。这就是this site的jquery自动补全的工作方式。

代码语言:javascript
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2010-01-17 04:21:38

你看过gae-search吗?我相信Django + jQuery的“自动补全”功能不是免费版本的一部分(它只是付费的高级版本),但也许它对你来说是值得的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2078738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档