我们正在寻找一种技术来实现对自动合成列表的快速搜索,该列表基于大型字典(国家、城市、地区、组织、对象)。
- 国家150行
- 城市30万行
- 区域7万行
- 组织机构500,000行
- 对象50000行
主要要求1. 过滤器字段应该适用于所有字典2. 用户输入应该会显示一个完成列表3.预期负载超过每秒200个请求
首选技术 nginx, php, windows server
考虑到缓存目录的数量来制作结果并将它们放在memcached中是不可能的
提示,如何解决问题
为像您这样的大型数据集实现快速自动补全可能具有挑战性。我没有使用Elasticsearch/solr自动完成,但它们是可能的解决方案。我更喜欢Elasticsearch。
你也可以尝试Redis作为自动完成的索引存储。Redis确实提供了一个相同的演示http://autocomplete.redis.io/但是Redis不支持Windows。
我也建议不要使用PHP。出于性能考虑,我宁愿使用Java/c#。
如果你不想自己实现它,你可以使用这个名为"自动完成服务"的服务,它是专门为这些目的编写的。你可以在这里访问- www.aaas.io。它支持大型数据集,你也可以应用过滤器。
免责声明:我是它的创始人。如果目前的计划不适合你的需要,你可以给我发电子邮件。我很乐意为您提供服务。