如何快速获得闪电般的搜索?

| 我刚来到这个网站:http://www.hittaplagget.se。如果输入以下搜索词“ 0”,则自动弹出自动提示。 但是,如果您访问我的网站http://storelocator.no,并使用相同的搜索词组(在“搜索品牌”字段中),则自动建议的时间会更长。 我知道我们只能猜测他们使用的是哪种技术,但是希望这里的人能比我做得更好。 在我的解决方案中,我只做“ 1”并返回结果。 我还没有索引我的表,因为它只有7000行。但是我正在考虑使用Lucene为我的表建立索引。 谁能建议我需要做些什么才能获得同样快速的自动建议?     
已邀请:
您必须在保存搜索词的列上添加索引,即使是7000也是如此-否则,数据库每次都会搜索整个列表。参见http://dev.mysql.com/doc/refman/5.0/en/create-index.html。     
Lucene是全文搜索索引,可能不是您要找的内容。 Lucene会在整个索引列中找到任何出现的“ moo”(例如Mootastic和Fantasticmoo),尽管搜索速度比x的\'%moo%\'类型的速度要快,但不一定会加快搜索速度。搜索。 正如其他人已经指出的那样,如果要执行“从...开始”类型的搜索,则需要使用常规索引(甚至可能是唯一索引)。     
您将需要对表进行表扫描,因此我建议: 不要在不需要的表中放置任何行-例如,“非活动”记录-将它们保存在其他表中 不要在不需要的表中放置任何列 您可以通过使用一个特殊的\“ Search table \”(仅包含您感兴趣的行/列)并从\“ Master table \”中对其进行更新来实现此目的。 如果行很小,则对7000行表进行表扫描应该非常有效;我从您的问题域了解到情况将会如此。 但正如其他人指出的那样-不要在不需要时将7000行发送到客户端。 常规索引可以将LIKE \'someprefix%\'优化为范围扫描,因此拥有一个索引可能会有所帮助。如果要在条目的任何部分中搜索字符串,则将使用表扫描(在如此小的表上这样做应该不会太慢!)     

要回复问题请先登录注册