gpt4 book ai didi

database - 在服务器中实现自动完成的最佳方式是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:51:02 25 4
gpt4 key购买 nike

这个问题很简单。在 Web 应用程序的客户端使自动完成变得漂亮很简单。有很多插件。

但是,在后端,在服务器端,最好的方法是什么?我不喜欢在用户按下每个键时点击数据库的想法。

我一直在考虑 sphinx,或者一些与您的站点并行运行的全文搜索引擎。

例如,如果我有一个 PHP(高流量)网站,我可以创建一个并行 python 脚本,从我的“自动完成文本框”获取 http 请求。然后,当用户在客户端按下一个键时,AJAX 请求被定向到可以使用特殊策略的 python 脚本。

你的方法是什么?

一些约定:

  • 尽量不要攻击数据库。我的意思是,得到请求并做某事 SELECT *FROM foo WHERE bar LIKE "req%"不是一个很好的答案。这可能是一个好战略,但我知道该怎么做。*
  • 复制数据可能是一个不错的选择。

最佳答案

我同意您需要一些更好的解决方案。 Apache solr有一个“建议”功能,您可以很好地使用它。如果您的数据集很小,那么将所有数据放在内存中,然后只做一个简单的循环。

在前端,我建议使用 setTimeout() 在触发 ajax 调用之前等待大约 200 毫秒。如果在那 200 毫秒内,触发了另一次击键,则取消上次超时并开始下一次。这是一个非常干净的解决方案,它不会在每次击键时都击中数据库。我过去用过它,效果非常好。

这解释了 solr 和 jquery 以及如何很好地创建自动完成。 http://www.mattweber.org/2009/05/02/solr-autosuggest-with-termscomponent-and-jquery/

关于database - 在服务器中实现自动完成的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115366/

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