如何从数据库开发搜索框自动完成功能?

时间:2018-09-24 06:48:59

标签: database search autocomplete

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

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

例如,flipkart和amazon之类的电子商务网站的数据库中有很多产品。因此,如果用户在搜索字段中输入字母,则必须在数据库的所有数据中搜索包含该字母的数据,并匹配包含该字母的数据并将其显示为建议。网站正在毫微秒的时间内对其进行处理。我想知道他们是如何实现该功能的?我不明白他们正在使用什么技术。

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

1 个答案:

答案 0 :(得分:0)

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

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

关于第二季度,搜索引擎技术不再是神秘事物,一些开源项目可以模拟搜索引擎的功能,例如Apache Lucene,请访问Apache Lucene

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

这是后端系统example 为了减轻主机负担并减少对网络带宽的需求,前端的javascript应该激活具有三个以上字符的自动完成功能。

请在您的实际应用中注意,您的服务器具有计算的限制,并且客户端页面通常包含许多元素,所有这些都会降低用户友好性。请不要使请求和响应太复杂。

另一种模拟可以是:制作FIFO逻辑,在“缓存”或temp-table | view中保存一些常用的搜索关键字,这样可以减少数据量。

解决方案太多,目前我只能想到这些技巧。 问候