三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Trie树初步认识

Trie树初步认识

Trie树:

也叫字典树、前缀树,和搜索处理、分词器关系很大,

Trie树是一棵按照字符路径存储字符串的树,用空间换时间,实现快速查找、前缀匹配。

假如有一个词库

apple
app
application
banana
band
bank

而用户的问题是app

最普通的方法,就是每个单词逐一比较,但是如果词库数量很多,检索效率就会非常低

而Trie树则是按如下操作的:

root
|
a
|
p
|
p
/ | \
✓ l l
| |
e i
|
c
|
a
|
t
|
i
|
o
|
n

按字符串的每个字符逐一比较,检索出以app开头的所有词,从而实现快速检索

实际例子:

打开淘宝搜索:华为

立刻出现华为手机、华为手表、华为耳机等等

Trie树:


|

/ | \
手机 mate60 平板

Trie快速找到带有华为前缀的所有分支,这就是自动补全(Autocomplete)

与倒排索引的区别:Trie树关注的是词本身以及前缀关系,而倒排索引关注的是哪些文档包含这个词,区别还是很大的

← 返回列表