【问题标题】:How to develop search box auto completion from database?如何从数据库开发搜索框自动完成功能?
【发布时间】:2019-02-27 15:34:45
【问题描述】:

我见过很多提供搜索框来搜索产品的电子商务网站。在该搜索功能中,大多数搜索字段都是自动完成的。如果我们在字段中输入一个字母,那么它将显示包含该字母的数据作为数据库的建议。据我所知,开发该功能的基础知识。

但是如果数据库包含大量数据怎么办?

例如,像 Flipkart 和 amazon 这样的电子商务网站的数据库中有很多产品。因此,如果用户在搜索字段中输入一个字母,它必须在数据库中的所有数据中搜索包含该字母的数据,并匹配包含该字母的数据并将数据显示为建议。这些网站正在纳秒内处理它。我想知道他们是如何实现该功能的?我不明白他们使用的是什么技术。

作为一名学习者,我想了解功能流程以及该功能的演示(如果可能)。

【问题讨论】:

  • 欢迎堆栈溢出。请注意,关于如何完成的问题可能会被标记为关闭,因为它们会导致非常主观的答案。我建议你做一些研究,尝试一些东西,如果遇到麻烦,再提出一个具体的问题。
  • 我用一个名为 autocomplete 的 jquery 插件结合了对服务器端方法的 ajax 调用对 ASP.NET 代码进行了类似的操作,该 ASP.NET 代码在应用程序的数据库中实现了搜索。

标签: database search autocomplete


【解决方案1】:

我认为您的问题可以分为两部分。 1)如何为搜索技术设计数据库。 2)如何实现效果搜索...属于搜索引擎技术领域。

关于Q1,您可以创建一个表格来保存搜索的关键字,并且在表格中,您最好设计一个列或类似的方法来描述“搜索权重”。众所周知,视图是加速数据访问的实用解决方案。

关于Q2,搜索引擎技术不再神秘,一些开源项目可以模拟搜索引擎的特性,比如Apache Lucene,请访问Apache Lucene

更多讨论: 特别是,在您的前端系统中,例如 ASP/JSP 甚至简单的 HTML 页面,您应该使用一些脚本,例如Ajax,弹出,下拉,当然,简单的DOM Javascript+DIV 也可以实现,但是用jQuery 或其他库可以轻松实现。这里是an example

这里是后台系统example 为了减轻主机的负担,减少对网络带宽的要求,前端的javascript应该启用三个以上字符的自动补全功能。

在您的实际应用中请注意,您的服务器有计算的限制,而且客户端页面通常有很多元素,都会降低用户友好性。请不要让请求和响应过于复杂。

另一种模拟可以是:做一个FIFO逻辑,在“缓存”或临时表|视图中保存一些常用的搜索关键字,这样数据量就会减少。

解决办法太多了,我此刻只能想到这些招数。 问候

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2012-06-16
    • 1970-01-01
    • 2016-08-09
    • 2011-02-11
    • 2012-08-05
    • 2012-12-23
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多