只需阅读http://ejohn.org/blog/javascript-trie-performance-analysis/
我有用户名和姓氏词典
Alex Woha
Mike Ivanov
Donald Duck
Alex Wolf
John Wolf
等等。假设用户输入了单词
Wolf
我必须建议他下一个
Alex Wolf
John Wolf
如果他进入
Wolf Al or Alex Wol
我只建议
Alex Wolf
字典很大,所以我更喜欢使用trie或dawg。我该如何解决这个问题?
答案 0 :(得分:0)
你正在寻找的是基于前缀的trie。并非所有trie实现都这样做(john resig的实现就是其中之一)。 幸运的是,node natural的trie实现确实如此。来自文档:
尝试是一种非常有效的数据结构,用于基于前缀的搜索。 Natural包含一个基本的Trie实现,可以支持路径上的匹配,存在搜索和前缀搜索。
答案 1 :(得分:0)
所以,我通过使用ngram索引(这是我的implementation)
来解决这个问题