【发布时间】:2014-10-14 09:29:30
【问题描述】:
自动完成字段的性能不佳会降低其实用性。如果客户端实现必须调用执行繁重的数据库查找的端点,响应时间很容易令人沮丧。
AWS Case Study: IMDb 提供了一种简洁的方法。它曾经带有一个图表(不再可用),但简而言之,将为每个可以以有意义的方式解析的组合生成并存储一个预测树。例如。 sta 的分辨率将包括 Star Wars, Star Trek, Sylvester Stallone 将被存储,但 stb 不会解析为任何有意义的东西,也不会被存储。
为了获得尽可能低的延迟,所有可能的结果都是 为每个字母组合预先计算一个文档 搜索。每个文档都被推送到 Amazon Simple Storage Service (Amazon S3),从而到 Amazon CloudFront,将文件 物理上靠近用户。可能的理论数量 要计算的搜索令人难以置信——20 个字符的搜索有 23 x 1030 种组合——但在实践中,使用 IMDb 在电影和 名人数据可以将搜索空间减少到大约 150,000 个文档, Amazon S3 和 Amazon CloudFront 可以在几个 小时。 IMDb 以多种语言创建索引并每日更新 用于包含超过 100,000 个电影和电视节目以及名人姓名的数据集。
如何使用私有数据实现类似的性能体验?例如。自动完成客户名称、工作 ID、发票编号...为不同的用户存储不同的文档/决策树听起来很昂贵,尤其是如果某些数据(客户名称?)可以供多个用户使用。
【问题讨论】:
标签: javascript search architecture autocomplete client-side