我正在努力构建一个合适的自动完成功能。我正在通过构建一个非常简单的 API 来练习,该 API 可以自动完成用户的姓名。
目前,我有一个包含列given_name和last_name. 它们使用弹性搜索进行索引。而且,我已经构建了一个 API,它接受一个搜索词来查询 elasticsearch。
我关心前端如何与这个 API 通信。这样做的明显方法是在搜索输入的每次按键之后调用 API。但是,这是发送的大量请求。在延迟之后拨打电话以减少请求感觉很麻烦。有没有合适的方法来做到这一点?
我找到了许多关于如何构建 elasticsearch API 的指南,但没有任何将前端和后端放在一起的指南。
可以肯定的是,发出了很多电话!但是对于大多数应用程序,建议选项的数量排除了基于客户端的自动完成。
但是,有效的自动完成功能应该通过减少拼写错误和零结果搜索等来减少发送/呈现的(更重量级的)搜索请求的数量(同时改善搜索者体验)。
此外,Elasticsearch 通常会快速处理自动完成请求(<10 毫秒),释放集群资源的速度比搜索请求快得多。
减少自动完成生成的服务器流量的常见调整包括:
Twitter Typeahead.js整合了上述所有用于浏览器内自动完成的 API 流量优化。看一看!
| 归档时间: |
|
| 查看次数: |
1922 次 |
| 最近记录: |