gpt4 book ai didi

api - 如何构建自动完成 API?

转载 作者:行者123 更新时间:2023-12-04 19:43:09 25 4
gpt4 key购买 nike

我正在尝试构建一个适当的自动完成功能。我正在通过构建一个非常简单的 API 来练习,该 API 可以自动完成用户的姓名。

目前,我有一个包含列的数据库,given_namelast_name .它们使用 Elasticsearch 进行索引。而且,我已经构建了一个接受搜索词来查询 Elasticsearch 的 API。

我关心前端如何与这个 API 通信。这样做的明显方法是在搜索输入的每次键入后调用 API。但是,这是发送大量请求。在延迟后调用电话以减少请求感觉很不礼貌。有没有合适的方法来做到这一点?

我找到了许多关于如何构建 Elasticsearch API 的指南,但没有找到将前端和后端放在一起的指南。

最佳答案

可以肯定的是,发出了很多电话!但是对于大多数应用程序,建议选项的数量排除了基于客户端的自动完成功能。

然而,一个有效的自动完成功能应该通过减少拼写错误和零结果搜索等来减少发送/呈现的搜索请求的数量(同时改善搜索者的体验)。

此外,Elasticsearch 通常会快速处理自动完成请求(如 <10 毫秒),释放集群资源的速度明显快于搜索请求。

减少自动完成生成的服务器流量的常见调整包括:

  • 在触发自动完成之前施加最小条目长度(通常为 2-3 个字符)。
  • 在触发之前在 keyup (0.1-0.3s) 之后添加一个短暂的延迟,以便快速/自信的打字员不会产生一连串不必要的/中间完成请求。
  • 在浏览器中缓存最近的完成列表,以便 击键不会触发服务器请求。
  • 浏览器中的预缓存建议(如果可行/有界 - 例如导航、 friend /联系人姓名等...)


  • Twitter Typeahead.js包含上述所有 API 流量优化,用于浏览器内自动完成。看一看!

    关于api - 如何构建自动完成 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34193054/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com