基于大词典快速查找自动完成列表

时间:2014-06-24 17:43:14

标签: php sql autocomplete cassandra memcached

我们正在寻找能够快速搜索自动编译列表的技术,该列表基于大型词典(国家,城市,地区,组织,对象)。

  • 国家/地区150行
  • 城市300 000行
  • 地区70 000行
  • 组织500 000行
  • 对象50 000行

主要要求 1.过滤字段应该是所有字典的一个 2.用户输入应导致显示完成列表 3.预期负载超过每秒200个请求

首选技术 nginx,php,Windows服务器

给定结果的缓存目录数量并将它们放在memcached中是不可能的

提示,如何解决问题

1 个答案:

答案 0 :(得分:0)

为像您这样的大型数据集实施快速自动完成功能可能具有挑战性。我没有使用Elasticsearch / solr进行自动完成,但它们是可能的解决方案。我更喜欢Elasticsearch。

您还可以尝试使用Redis作为自动填充的索引存储。 Redis确实为同一个http://autocomplete.redis.io/提供了演示。但Windows不支持redis。

另外我建议不要使用PHP。而是出于性能原因使用Java / C#。

如果您不想自己实施,可以使用名为“自动完成即服务”的服务,该服务专门用于这些目的。您可以在此处访问它 - www.aaas.io。它支持大型数据集,您也可以应用过滤器。

免责声明:我是它的创始人。如果当前的计划不符合您的需求,您可以给我发电子邮件。我很乐意为您提供服务。