常⽤的索引⽅式-倒排索引、后缀数组英语学习教程
米菲动画片倒排索引:(Inverted index)也称为反向索引、置⼊档案或反向档案
倒排索引是⼀种索引⽅法,被⽤来存储在全⽂搜索下某个单词在⼀个⽂档或者⼀组⽂档中的存储位置的映射。它是⽂档检索系统中最常⽤的数据结构。
倒排索引建⽴的是⼀种“单词到⽂档”的映射关系。即记录下每个单词或短语在⽂档中出现的位置,查找时即可直接定位到具体⽂档。
因为在⽇常的检索中,通常都是按照关键字进⾏搜索的,所以,倒排索引可以更好地适合这种检索机制的需要。高考答案
husband怎么读
harmonize后缀数组:(Suffix Array)
字符集⼀个字符集∑是⼀个建⽴了全序关系的集合,也就是说,∑中的任意两个不同的元素α和β都可以⽐较⼤⼩,要么α<β,要么β<α(也就是α>β)。字符集 ∑中的元素称为字符。
字符串⼀个字符串S是将n个字符顺次排列形成的数组,n称为S的长度,表⽰为len(S)。S的第i个字符表⽰为S[i]。⼦串字符串S的⼦串S[i..j],i≤j,表⽰S串中从i到j这⼀段,也就是顺次排列S[i],S[i+1],...,S[j]形成的字符串。
后缀后缀是指从某个位置i开始到整个串末尾结束的⼀个特殊⼦串。字符串S的从i开头的后缀表⽰为Suffix(S,i),也就是Suffix(S,i)=S[i..len(S)]。
intensive
下⾯我们约定⼀个字符集∑和⼀个字符串S,设len(S)=n,且S[n]='$',也就是说S以⼀个特殊字符'$'结尾,并且'$'⼩于∑中的任何⼀个字符。除了S[n]之外,S中的其他字符都属于∑。对于约定的字符串S,从位置i开头的后缀直接写成Suffix(i),省去参数S。
ampoule
动画天上掉下个猪八戒主题曲后缀数组后缀数组SA是⼀个⼀维数组,它保存1..n的某个排列SA[1],SA[2],...SA[n],并且保证 Suffix(SA[i])<Suffix(SA[i+1]),1≤i<n。也就是将S的n个后缀从⼩到⼤进⾏排序之后把排好序的后缀的开头位置顺次放⼊SA中。
后缀数组的检索
由于后缀数组中的索引点是按照语法顺序存储的,所以后缀数组的检索思想是对其进⾏⼆分查找。例如查找以“text”开头的后缀,先确定两个边界模式P1=“text”、P2=“texu”,对这两个模式进⾏⼆分查找,其查找结果对应后缀数组中的两个位置,这两个位置之间的所有位置就是所要查询的结果。雅思冲刺班
然⽽,后缀数组是⼀种存储于硬盘上的⼤型数据结构(类似于倒排表),⼀次查询logn次的随机硬盘读取是不可能接受的,所以后缀数组的检索通常是从上部索引开始,先通过对内存中上部索引的⼆分
查找确定查找结果的后缀数组范围,再将这段后缀数组加载到内存中进⾏进⼀步的⼆分查找以确定结果。
男生英文名字大全但在对后缀数组的⼆分查找过程中,需要随机访问位置点⽂本已进⾏⼆分查找中的⽐较,如果加载到内存中的后缀数组长度为m,那么⼀次检索需要logm次的硬盘随机访问,个⼈认为可以构造后缀⽚段更长的硬盘级别上部索引,当加载后缀数组时同时加载其对应上部索引以加快查找速度。
References :