【发布时间】:2015-04-30 11:09:07
【问题描述】:
我想实现一个自动建议组件。对于每个用户输入,组件应该提供零个或多个建议。
例如,如果用户输入'park',建议可能是:['Parkville', 'Parkwood', 'Bell Park']。
要求很简单:
- 它应该不区分大小写(对于
'park'、'PARK'和'PaRk',用户应该得到相同的建议) - 它应该匹配每个单词的开头(
'pa'将匹配'Parkville'、'Bell Park'和'Very cool park',但不是'Carpark')
你会选择什么数据结构在 Javascript 中实现这个?
是否有任何 Javascript/Node.js 库可以提供帮助?
【问题讨论】:
-
建议从何而来?一些固定的字符串列表,还是有不同的来源?
-
您是否在服务器上寻找通过 ajax 查询的搜索数据结构?那是静态的还是动态更新的?或者你想把这个数据结构放在客户端(需要遵守内存限制、小传输大小、快速构建算法)?
-
@VadimLanda 假设有一个固定的字符串列表可供选择。
-
你处理多少个字符串?
-
@Bergi 我将有一个进程定期从数据库中提取数据并将其写入文件(以 JSON 格式)。该算法将在服务器上运行,并且需要使用此 JSON 数据。所以,我假设会有某种构建过程从这个 JSON 创建一个数据结构。然后,希望搜索会非常快。数据量约为 50000。
标签: javascript node.js data-structures