数百万行自动完成现场实施的想法?

时间:2010-11-22 01:24:55

标签: database memcached

我有一个位置自动完成字段,该字段已自动完成所有国家/地区,城市,社区,村庄,邮政编码。这是我为我的网站构建的位置跟踪功能的一部分。所以你可以想象这个列表将在数百万行中。预计至少有超过2000万人使用所有村庄和总代码。为了使自动完成工作顺利,我将使用memcached,所以我们总是不打数据库来获取此列表。它将被大量使用,因为这是网站的主要功能。但问题是:

列表中只有1个实例存储在memcached中,无论用户是否提取信息,还是需要为每个实例维护一个单独的实例?因此,如果说有2000万人同时使用它,那么使用位置自动完成只会有1个人不同吗?对于如何实现此位置自动完成,我对其他想法持开放态度,因此它表现良好。

或者我可以这样做:当用户在后台登录时,无论如何我都会将列表发送给他们,所以当他们到达自动完成文本字段时,他们的计算机是否已准备好立即加载?

1 个答案:

答案 0 :(得分:1)

使用NGram(或EdgeNGram)标记器查看Solr(或Lucene本身),您可以在海量数据集上获得良好的自动完成性能。