-
SIMD(Lucene 8.7.0)
从Lucene 8.4.0开始,在写入/读取倒排信息时,即写入/读取索引文件.doc、.pos、.pay时,通过巧妙的编码方式(下文中展开)使得C2编译器能生成SIMD(Single Instruction Multiple Data)指令,从而... -
索引文件的合并(四)之kdd&kdi&kdm(Lucene 8.7.0)
本篇文章开始介绍索引文件kdd&kdi&kdm的合并,由于维度值为1和维度值大于等于2的点数据对应的索引文件的合并方式有较大的差异,故我们分开介绍。本篇文章先对维度值为1的情况展开介绍,建议先阅读文章索引文件的生成(二十五)之kd... -
索引文件的生成(二十五)之kdd&kdi&kdm(Lucene 8.7.0)
在系列文章索引文件的生成(Lucene 7.5.0)中,我们介绍了存储维度(见文章Bkd-Tree)值大于等于2的数值类型对应的索引文件的生成过程。对于维度值等于1的情况,其生成过程有少许的不同。为了后续便于介绍该类型的索引文件的合并,我们需要再... -
ReaderPool(二)(Lucene 8.7.0)
本文承接文章ReaderPool(一),继续介绍剩余的内容。 读取ReaderPool对象 我们继续介绍ReaderPool对象中的readerMap这个map容器ReaderAndUpdates中包含的实例变量。 图1: 图2: b... -
ReaderPool(一)(Lucene 8.7.0)
ReaderPool类对于理解Lucene的一些机制起到了极其关键的作用,这些机制至少包含段的合并、作用(apply)删除信息、NRT(near real-time)、flush/commit与merge的并发过程中的删除信息的处理等等,所以有必... -
索引文件的合并(三)之fdx&&fdt&&fdm(Lucene 8.7.0)
本文承接文章索引文件的合并(二)之fdx&&fdt&&fdm,继续介绍剩余的内容,下面先给出索引文件fdx&&fdt&&fdm的合并流程图。 索引文件fdx&&fd... -
索引文件的合并(二)之fdx&&fdt&&fdm(Lucene 8.7.0)
本文承接文章索引文件的合并(一)之fdx&&fdt&&fdm,继续介绍剩余的内容,下面先给出索引文件fdx&&fdt&&fdm的合并流程图。 索引文件fdx&&fd... -
索引文件的合并(一)之fdx&&fdt&&fdm(Lucene 8.7.0)
从本篇文章开始介绍索引文件合并的过程,其中合并策略、合并调度在之前的文章中已经介绍,没有阅读过这些文章并不会影响对本篇文章的理解。 由于本篇文章是索引文件的合并的开篇文章,故我们先给出各类索引文件合并的先后顺序,如下所示: 图1: 图1... -
BinaryDocValues(Lucene 8.7.0)
在文章BinaryDocValues中我们介绍了Lucene 7.5.0版本的数据结构,并且在文章索引文件的生成(二十一)之dvm&&dvd中介绍了Lucene 8.4.0中其数据结构的生成。阅读本文前建议先看下上述的两篇文章,因... -
索引文件之tvd&&tvx&&tvm(Lucene 8.7.0)
在索引(Indexing)阶段,当某个域被设置为需要记录词向量(term vector)信息后,那么随后在flush阶段,该域对应的词向量将被写入到索引文件.tvd&&tvx&&tvm三个文件中。 图1: 图...