具有大型(70,000+ 项)数据集的高效 jQuery 实时搜索

Posted

技术标签:

【中文标题】具有大型(70,000+ 项)数据集的高效 jQuery 实时搜索【英文标题】:Efficient jQuery live search with large (70,000+ item) data set 【发布时间】:2020-06-07 12:55:32 【问题描述】:

我正在为我的 WordPress 网站上的页面创建一个新表单,并且在此表单的其中一个输入上,我想使用 jQuery 添加一个实时搜索功能,该功能根据用户键入的内容列出可能的选项迄今为止。我正在过滤的数据集是一个非常大的 JSON 对象,存储在我的主题中,其中包含超过 70,000 个键/值对。因为我目前在每个 keyup 上循环遍历整个对象,所以我实现的实时搜索非常慢并且经常冻结。

使用 jQuery 对大型数据集执行实时搜索的最有效方法是什么?

【问题讨论】:

What's the most efficient way to perform a live search on large data sets using jQuery? 没有。这么多数据应该保存在可扩展的服务器端数据库中,并在那里进行查询。 【参考方案1】:

jQuery 用于 DOM 操作,在这里没有用处。

javascript 可以解决这个问题,但是,随着您提供的数据的增加,它也将变得越来越明显,它应该可以通过缓存内存或数据库中的服务器进行访问。

JSON 的大小可能会影响页面加载速度,并且对于某些内存可用性小的设备,可能意味着页面根本无法加载。

除此之外,您需要做的是在键中构建一个查找结构。这种设计模式称为"trie"。没有任何类型的示例代码可以继续,为了示例而在这里实现将是浪费时间。

我建议您查看链接的 wikipedia 文章以获取有关一般主题的一些教育,然后在 github 上查找一个库,该库为 json 搜索提供了某种 trie 功能;当然,除非您有足够的信心自己实施。

【讨论】:

以上是关于具有大型(70,000+ 项)数据集的高效 jQuery 实时搜索的主要内容,如果未能解决你的问题,请参考以下文章

计算大型数据集的python树高度

多多边形地理并集的高效计算技术

对于大型数据集的查询,日期类型是不是比日期时间更高效?

R中的高效方法是将新列添加到具有大数据集的数据框中

具有大型数据集的 SQL Server 中的数据透视表

在具有大型数据集的 Firebase 数据库上查询非常非常慢