【发布时间】:2010-05-28 05:23:45
【问题描述】:
为方便起见,该表包含英语词典中的所有单词。
我想做的是能够将数据存储为 trie。这样我就可以遍历trie的不同分支,返回最相关的结果。
首先,如何将表中的数据存储为trie?
二、如何遍历树?
如果它有帮助,this previous question 中的建议就是引发这个问题的地方。
请确保我们所说的是 SQL。由于指针,我理解了Mike Dunlavey's C implementation,但看不到这部分(特里树本身)在 SQL 中是如何工作的。
谢谢,
马特
【问题讨论】:
-
抱歉,我搜索了“trie”和“SQL”并没有弹出该结果,我的印象是在这些情况下允许重复。无论如何,他们给出的答案......这不会把我的 150 万个不同单词的表变成超过 1000 万条记录吗?这真的是正确的做法吗?
-
如果真的是尝试,1000 万条记录听起来还不错。这应该花费您大约 100 兆字节左右(提供或获取索引),这是非常易于管理的。
-
我不担心 db 大小,只是它会在多大程度上影响命中该表的任何查询的运行时间......不过,我对 SQL 优化知之甚少,这个 trie setup 似乎是一个不错的选择,所以我将使用它并看看它是如何进行的。
-
如果您能告诉我们结果如何,那就太好了。
标签: sql-server traversal trie depth-first-search