赞
踩
Bw-Tree通过无锁的方式(具体的操作细化成好几个原子操作)来操作B+树,提升随机读和范围读的性能,同时数据以追加的方式写入,提高写的性能。
Bw-tree结构如下:
结构如下图:也是叶子节点存储在NVM中,而内部节点放置在DRAM中。
如下图所示,一张关系表中的数据不再以行为单位连续存储在磁盘上,而是将每个列上的数据分别连续存储
由于页面是I/O的基本单元,为读取每行中的少数属性上的值,不得不读取整个页面,造成严重读放大问题。
-- RCFile
-- ORC
-- Parquet
-- CarbonData
每个行组中有一个元数据区域,存储行组中各个列的位置偏移。
这样的存储组织方式保证了在页面的粒度上数据是按行对齐的。
文档存储分两类:
(1) 无结构文档存储,例如,文本、HTML等;
(2)半结构化文档,比如XML、JSON等。
无结构文档存储。文档具有非结构化的特点。文档存储通常需要高效实现几个基本操作:读取、写入、删除、更新。
但是,很多情况下只采用上述扫描方式是远远不够的,需要做更多的处理。这些情况如下所述:
1) 大规模文档集条件下的快速查找。在线数据量的增长并不低于计算机速度的增长,可能需要在几十亿到上万亿单词的数据规模下进行查找;
2) 有时我们需要更灵活的匹配方式。比如,在grep 命令下不能支持诸如 Romans NEAR countrymen 之类的查询,这里的NEAR 操作符的定义可能为“ 5 个词之内” 或者“ 同一句子中” ;
3)需要对结果进行排序。很多情况下,用户希望在多个满足自己需求的文档中得到最佳答案。
布尔检索模型接受布尔表达式查询,即通过AND、OR 及NOT 等逻辑操作符将词项连接起来的查询。
对检索系统的效果(effectiveness,搜索结果的质量)进行评价,通常需要知道某个查询返回结果的两方面的统计信息:
1.正确率(Precision):返回的结果中真正和信息需求相关的文档所占的百分比。
2.召回率(Recall):所有和信息需求真正相关的文档中被检索系统返回的百分比。
然而,倒排索引(有时也称倒排文件)已经成为信息检索中的一个标准术语。倒排索引的基本思想参见图1-3。
(1) 收集需要建立索引的文档,如:
(2) 每篇文档转换成一个个词条(token)的列表,这个过程通常称为词条化(tokenization),如:
(3) 进行语言学预处理,产生归一化的词条来作为词项,如:
(4) 对所有文档按照其中出现的词项来建立倒排索引,索引中包括一部词典和一个全体倒排记录表。
现在,假定前3 步已经执行完毕,我们来讲述如何通过基于排序的索引构建方法(sort-based indexing)来建立一个基本的倒排索引。
给定一个文档集,假定每篇文档都有一个唯一的标识符即编号(docID)。
由于一个词项通常会在多篇文档中出现,上述组织数据的方法实际上也已经减少了索引的存储空间.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。