【问题标题】:Search Bar in Javascript - Partially Match StringsJavascript 中的搜索栏 - 部分匹配字符串
【发布时间】:2015-03-18 16:23:31
【问题描述】:

尝试为可以输入查询的用户创建一个搜索栏,然后搜索我的 JSON 文件以检索正确的内容。

例子:

1-  User input: "15 inch touchscreen"
    Match with: "15-inch", "15", "Touchmonitor", "1537L", "Stand for 1501L-1601L"

2-  User input: "3243 ids"
    Match with: "3243L", "IDS"

基本上是为了一个完整的搜索功能 - 所以显然速度将是一个因素。

问题:

  1. 有没有办法像在 Javascript 中那样处理部分匹配或 jQuery?
  2. 在页面加载时加载所有产品客户端会更快吗? 然后稍后搜索它们,或者搜索当时的JSON文件 查询?

处理大约 5000 行 JSON 文件,大约 200KB

【问题讨论】:

  • 使用数据库而不是平面文件可能会更好,想到 Elasticsearch
  • 无论如何-> jsfiddle.net/sepyec33
  • @adeneo 不确定这是否是一个选项。我正在从 Excel 表价格表中获取产品数据并将其转换为 JSON。然后我会创建一个脚本来从 JSON 加载页面内容。需要使它成为一种千篇一律的方法,这样我就可以获取其他价目表,转换为 JSON,然后指向它。这不适用于我们的网站目录 - 已经在数据库中。这更多是为了能够根据不同的信息集创建独特的客户网站。
  • @adeneo 小提琴的一个问题是我也想将touchscreentouchmonitor 匹配——但不确定这有多容易。需要为部分匹配的字符数设置一个阈值。
  • 搜索很复杂,尤其是当您开始想要部分匹配等时。一些世界上最大的公司已经花费了数十亿美元来解决这样的问题,并且有可用的开源项目和数据库已经建立了这个in. 用几行 javascript 来做这件事可能不是一个很好的选择,以获得良好的一致结果。

标签: javascript jquery json


【解决方案1】:

没有看到你的代码很难说。 首选方法是在服务器端进行繁重的计算和逻辑 - 以防您的数据和逻辑预计会在大小和复杂性上增长。 所以我绝对建议研究像弹性这样的产品:https://www.elastic.co/ 但是,如果该文件是恒定的(预计不会增长),您肯定可以在客户端上使用纯 JavaScript 实现该文件。

【讨论】:

    猜你喜欢
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2011-06-13
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多