Sql 以自动完成形式显示所有国家/地区

Sql 以自动完成形式显示所有国家/地区,sql,database,autocomplete,large-data-volumes,large-data,Sql,Database,Autocomplete,Large Data Volumes,Large Data,第一次在这里发布,因为谷歌没有结果 所以,我有一个网站,是围绕旅游和地点。每次有人在网站中输入内容时,他们都会选择一个位置,然后内容会有lat和long、country等 我面临的问题是,我有一个数据库,记录了世界上所有的“城市和地区”,我相信数据库中有350万条记录 我想问你们的问题是,你们建议如何为所有城市制作一个1字段的自动完成表格?我不需要关于自动完成表单本身的建议,我需要关于如何以及在何处存储数据的建议。。。文本文件?SQL?到目前为止,我一直在使用SQL,但我不知道该怎么做。如果我只

第一次在这里发布,因为谷歌没有结果

所以,我有一个网站,是围绕旅游和地点。每次有人在网站中输入内容时,他们都会选择一个位置,然后内容会有lat和long、country等

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

我想问你们的问题是,你们建议如何为所有城市制作一个1字段的自动完成表格?我不需要关于自动完成表单本身的建议,我需要关于如何以及在何处存储数据的建议。。。文本文件?SQL?到目前为止,我一直在使用SQL,但我不知道该怎么做。如果我只返回100条左右的记录,AJAX自动加载程序是否能够处理它?所有结果都应该预加载吗

谢谢你们的帮助,伙计们

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

太棒了。

本尼

我有一些想法:

  • 因为您不知道用户是输入英文名还是本地名,所以数据库中的每个城市记录都应该同时输入英文名和本地名。确保为这些字段编制索引

  • 在具有最小字符数之前,不要执行自动完成。否则,您将匹配表中过多的行。例如,假设英语字符分布均匀(26),那么在350万条记录中,您将统计得到每个字符的以下匹配:

  • 1字符=135k
    2字符=5.2k
    3字符=200
    4字符=8

  • 如果您使用的是MySQL,那么您需要使用类似的说明符

  • 有更多先进的预测匹配方法,但这应该是一个良好的开端。

    只需在自动完成函数中调用ajax即可。将所选国家/地区作为参数之一发送您认为将所选国家/地区作为参数发送是什么意思?我需要1个输入字段,用户在其中开始键入城市或地区,并返回最接近的结果。:)在ajax中,您应该发送要处理的数据,使用ajax发送两件事情,用户输入的国家和城市区域名称,您可以使用ajax发送多个值谢谢,我对ajax或开发一点也不陌生。我怎样才能把这个国家。。。如果我没有这个国家?你没有遵守我的要求。我能够通过AJAX发送的唯一数据是用户在单个输入字段中输入的字母。没有要发送的“国家”变量。我可以在城市被命名后找到这个国家。看到我的困境了吗?输入字段不限于单个国家的城市。无论用户输入什么,都应该可以从数据库中的每个城市记录中获得(大约300万),然后不发送国家,只发送城市区域名称,现在您只需要创建一个优化查询,它不会花费太长时间来查询300万条记录,只需使用ajax,并在自动完成功能中调用它