欢迎来到Xugang的小屋
-
查询TopN的优化之NumericDocValues(一)(Lucene 8.9.0)
在索引阶段,我们可以在每一篇文档中添加一条或多条DocValues信息(正排),使得在查询阶段,当收集器Collector收集到满足查询条件的文档号后,可以根据文档号找到对应的正排信息,并依据正排信息对查询结果进行排序。 图1: 图1中添加... -
ForceMerge(二)(Lucene 8.8.0)
我们紧接文章ForceMerge(一),继续介绍剩余的内容,先给出强制合并的流程图: 图1: 是否存在可以合并的段? 图2: 当前流程点的内容对应为源码中IndexWriter类的updatePendingMerges(…)方法,如下所... -
ForceMerge(一)(Lucene 8.8.0)
在执行了flush、commit等方法后,Lucene会基于段的合并策略对索引目录中的段集合进行合并操作。Lucene在IndexWriter类中也提供了额外的方法允许用户可以主动去执行段的合并操作。 ForceMerge概述 本篇文章将基... -
MemoryIndex(一)(Lucene 8.8.0)
从本篇文章开始介绍Lucene中提供的基于内存的搜索引擎的内容。我们通过MemoryIndex类的注释简单的了解下。 图1: 图1中中包含了两个重点内容: 单文档:使用MemoryIndex生成的索引是单文档(single-documen... -
索引文件的载入(一)之fdx&&fdt&&fdm(Lucene 8.4.0、8.6.0、8.7.0)
在文章SegmentReader(一)中,我们介绍了SegmentReader对象,它用于描述一个段中的索引信息,并且说到SegmentReader对象中包含了一个SegmentCoreReaders对象。 图1: 图1中,蓝框标注的两个对... -
Lucene核心技术(一)
Lucene核心技术 本篇文章通过ppt介绍Lucene: Lucene核心技术(一 ).pptx -
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...