以自动填充表单显示所有国家/地区

时间:2013-12-05 04:11:27

标签: sql database autocomplete large-data-volumes large-data

第一次在这里发帖是因为谷歌没有结果!

所以,我有一个基于旅行和地点的网站。每当有人在网站中输入内容时,他们会选择一个位置,然后该内容会包含长度,国家等内容。

我面临的问题是,我拥有世界上所有“城市和地区”的数据库,我相信数据库中有350万条记录。

我的问题是你们如何推荐为所有城市制作1场自动填充表单?我不需要关于自动填充表单本身的建议,我需要建议如何以及我应该在哪里存储数据...文本文件? SQL?到目前为止,我一直在使用SQL,但我不知道应该怎么做。如果我只返回100条记录,AJAX自动装载机是否能够处理它?是应该预先加载所有结果吗?

感谢您的帮助!

编辑:我实际上找到了另一种方法。我发现这个很棒的小插件可以将谷歌地图与它集成

http://xilinus.com/jquery-addresspicker/demos/index.html

优秀。

1 个答案:

答案 0 :(得分:0)

我在这里有一些想法:

  1. 由于您不知道用户是否会输入英语或本地(本机)名称,因此数据库中的每个城市记录都应该包含两者。确保索引这些字段。

  2. 在您拥有最少字符数之前,请勿自动完成。否则,您将匹配表中太多行。例如,假设英文字符的均匀分布(26),那么在350万条记录中,您可以统计得到每个字符跟随的匹配数:

  3. 1 char = 135k
    2 char = 5.2k
    3 char = 200
    4 char = 8

    1. 如果您使用的是MySQL,则需要使用LIKE说明符。
    2. 预测匹配有更多先进的方法,但这应该是一个良好的开端。