工具类 文档号收集器DocIdSet
本篇文章将介绍Lucene中用于存储文档号的数据结构DocIdSet,该抽象类的具体实现有以下几种,我们将一一介绍……
工具类 Automaton(三)
在文章Automaton(二)中我们根据图1的例子生成了图2的转移图以及转移图对应在源码中的描述方式,即状态(state)、转移(transition)函数两个数组,如图3所示……
工具类 Automaton(二)
在文章Automaton中我们介绍了确定型有穷自动机(Deterministic Finite Automaton)的概念,以及在TermRangeQuery中如何根据查询条件生成一个转移图,本文依旧根据该文章中的例子,介绍在Lucene中如何……
工具类 IndexedDISI(二)
在文章IndexedDISI(一)(阅读本文中之前,需要该前置文章)中我们介绍了在Lucene7.5.0中IndexedDISI的实现原理, 本文基于Lucene 8.4.0,将介绍优化后的IndexedDISI,即使用查找表(lookup table)……
工具类 IndexedDISI(一)
IndexedDISI工具类在Lucene中用来存储Norm/DovValues对应的文档号,其实现原理借鉴了roaring bitmaps(见文章RoaringDocIdSet),本文先通过介绍在Lucene7.5.0中的实现来理解其原理,接着会介绍在Luce……
工具类 RamUsageEstimator
Lucene通过RamUsageEstimator类提供的方法来粗略的(roughly)估算Java对象在内存中的大小。计算对象大小的主要目的是配合flush策略将内存中的索引信息同步到磁盘,flush策略的概念可以看文章……
工具类 RoaringDocIdSet
RoaringDocIdSet的设计灵感来源于RoaringBitmap,Lucene根据自身需求有着自己的的实现方法,来实现对文档号的处理(存储,读取)。……