自动完成电影名称

时间:2014-06-14 19:25:25

标签: php mysql lucene

我目前已经实现了用于搜索电影名称的Jquery自动完成功能。我有两个字符,中间有150毫秒的延迟。

我背后有一个PHP和Mysql数据库,类似'%term%'搜索返回结果。

我发现这很慢且数据库密集。

我尝试使用Mysql的全文搜索,但没有太多运气 - 也许我没有使用正确的匹配类型。

有人可以建议调整mysql全文,或者我是否应该直接使用像Lucene或Sphinx这样的索引解决方案,如果它们只能处理只有1-3个字符的部分匹配?

1 个答案:

答案 0 :(得分:0)

您受数据库返回结果的速度限制。我建议你加快速度。

  1. 对于每个请求,不要从php建立与mysql的新连接。启用数据库连接池。它可以提高性能。我不知道如何在PHP中建立连接池。 This可能有帮助。

  2. 如果可能的话,将结果缓存在php中,这样你就不会每次都打到数据库。

  3. 使用外部服务为自动填充提供数据。看看Autocomplete as a Service。这样可以减轻您编写自动完成后端的速度,从而产生更快的结果。