Trie字典查找

时间:2016-04-28 14:47:58

标签: javascript dictionary trie

只需阅读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。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你正在寻找的是基于前缀的trie。并非所有trie实现都这样做(john resig的实现就是其中之一)。 幸运的是,node natural的trie实现确实如此。来自文档:

  

尝试是一种非常有效的数据结构,用于基于前缀的搜索。 Natural包含一个基本的Trie实现,可以支持路径上的匹配,存在搜索和前缀搜索

在这里查看https://github.com/NaturalNode/natural#tries

答案 1 :(得分:0)

所以,我通过使用ngram索引(这是我的implementation

来解决这个问题