您好听说过Trie最适合自动建议/自动完成。 但是dwag占用的空间更少,所以我觉得dwag会更好。
此外,如果Sphinx / Lucene可以进行前缀匹配,那么为什么我们不应该使用它。
Trie / dwag对小桌子也有好处吗?
答案 0 :(得分:0)
我在DAWGs看到的问题; DAWG相对复杂。您可以通过所有单词获得唯一的路径(为了将某些数据与您通常想要的密钥相关联),但这比使用仅前缀压缩并且将具有唯一终端节点的trie要困难得多。使用DAWG获得的后缀压缩只有在非常内存有限的情况下(例如在嵌入式设备上)才有价值,自从你提到Lucene以来,你可能不会这样做。
前缀树是为此任务设计的。这是完美的。如果你需要自己编写,那就是你要去的地方。当然,也有很多可用的库,如果您没有特殊需求,则非常适合。