- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 Lucene 索引文件的生成(十九)之dvd&&dvm
在文章索引文件的生成(十八)之dvm&&dvd中,我们介绍了Lucene在索引阶段跟flush阶段收集到的SortedDocValues、SortedSetDocValues信息,这些信息将作为生成索引文件.dvm、dvd的依据。生成索引文件.dvd、.dvm之SortedDocValues、SortedSetDocValues的流程图图1:是否所有文档中都是单值?图2: 如果每篇文档中的某个域名的SortedSetDocValueField只有一个,即所谓的单
2020-05-31 20:19:11 495
原创 Lucene 索引文件的生成(十八)之dvd&&dvm
索引文件.dvm&&.dvd中根据文档中包含的不同类型的DocValuesFields,包含下面的DocValues信息:BinaryDocValues NumericDocValues:见文章索引文件的生成(十五)之dvm&&dvd SortedDocValues SortedNumericDocValues:见文章索引文件的生成(十七)之dvm&&dvd SortedSetDocValues 本篇文章开始介绍生成索引文件.dvd、.dvm之
2020-05-31 20:17:58 231
原创 Lucene 索引文件的生成(十七)之dvd&&dvm
本文承接索引文件的生成(十六)之dvm&&dvd继续介绍剩余的内容,先给出流程图:生成索引文件.dvd、.dvm之NumericDocValues的流程图图1:使用域值映射存储图2: 介绍本流程点之前,先介绍下什么是域值映射存储:域值映射存储通过一个映射关系,将每一种域值映射为一个新的数值,并且存储该数值到索引文件.dvd中,在读取阶段通过该数值和映射关系,获得原始的域值。 生成映射关系encode需要几下几个步骤:步骤一:收集域值种类 步骤二:排
2020-05-26 18:46:57 222
原创 Lucene 索引文件的生成(十六)之dvd&&dvm
在文章索引文件的生成(十五)之dvm&&dvd中,我们介绍了在索引(index)阶段收集文档的NumericDocValues信息的内容,随后在flush阶段,会根据收集到的信息生成索引文件.dvd&&.dvm。如果已经阅读了文章NumericDocValues,那么能快的理解本文的内容,注意的是那篇文章中,是基于Lucene 7.5.0,下文中的内容基于Lucene 8.4.0,不一致(优化)的地方会特别说明。生成索引文件.dvd、.dvm之NumericDocValu
2020-05-26 18:45:48 159
原创 Lucene 之 IndexedDISI(二)
在文章IndexedDISI(一)(阅读本文中之前,需要该前置文章)中我们介绍了在Lucene7.5.0中IndexedDISI的实现原理, 本文基于Lucene 8.4.0,将介绍优化后的IndexedDISI,即使用查找表(lookup table)提高了查询性能。 我们先根据源码中的注释看下优化的目的与方式,也可以直接查看IndexedDISI.java文件中的Javadoc:1To avoid O(n) lookup time complexity, wit...
2020-05-14 16:20:41 218
原创 Lucene 之 IndexedDISI(一)
IndexedDISI工具类在Lucene中用来存储Norm/DovValues对应的文档号,其实现原理借鉴了roaring bitmaps(见文章RoaringDocIdSet),本文先通过介绍在Lucene7.5.0中的实现来理解其原理,接着会介绍在Lucene8.4.0中的优化实现。IndexedDISI写入文档号Block 使用IndexDISI存储的数据结构如下所示:图1: 图1中,每个block用来描述最多2^16个文档号信息,例如第一个block中描述的文档号集合为
2020-05-14 16:19:38 284
原创 Lucene 索引文件的生成(十五)之dvd&&dvm
在前面的文章中,我们介绍了在Lucene7.5.0中索引文件.dvd&&.dvm的数据结构,从本篇文章开始介绍其生成索引文件.dvd&&.dvm的内容,注意的是,由于是基于Lucene8.4.0来描述其生成过程,故如果出现跟Lucene7.5.0中不一致的地方会另外指出,索引文件.dvd&&.dvm中的包含了下面几种类型:BinaryDocValues NumericDocValues SortedDocValues SortedNumericDoc
2020-05-14 16:18:41 232
原创 Lucene 索引文件的读取(四)之dim&&dii
本文承接索引文件的读取(三)之dim&&dii继续介绍剩余的内容,下面先给出读取索引文件.dim&&dii的流程图:图1:点击查看大图设置左子树、右子树的准备数据看这里:https://www.amazingkoala.com.cn/Lucene/Search/2020/0506/138.html...
2020-05-14 16:17:41 154
原创 Lucene 索引文件的读取(三)之dim&&dii
本文承接索引文件的读取(二)之dim&&dii继续介绍剩余的内容,下面先给出读取索引文件.dim&&dii的流程图:图1:点击查看大图读取索引文件.dim&&dii判断节点与查询条件的边界关系看这里:https://www.amazingkoala.com.cn/Lucene/Search/2020/0430/137.html...
2020-05-14 16:16:56 129
Lucene DocValues介绍
2019-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人