Lucene中的核心术语。
▪️Term:是索引里最小的存储和查询单元,对于英文来说一般是指一个单词,对于中文来说一般是指一个分词后的词。
▪️词典(Term Dictionary,也叫作字典):是Term的集合。词典的数据结构可以有很多种,每种都有自己的优缺点,比如:排序数组通过二分查找来检索数据:HashMap(哈希表)比排序数组的检索速度更快,但是会浪费存储空间;fst(finite-state transducer)有更高的数据压缩率和查询效率,因为词典是常驻内存的,而fst有很好的压缩率,所以fst在Lucene的最新版本中有非常多的使用场景,也是默认的词典数据结构。
▪️倒排序(Posting List):一篇文章通常由多个词组成,倒排表记录的是某个词在哪些文章中出现过。
▪️正向信息:原始的文档信息,可以用来做排序、聚合、展示等。
▪️段(segment):索引中最小的独立存储单元。一个索引文件由一个或者多个段组成。在Luence中的段有不变性,也就是说段一旦生成,在其上只能有读操作,不能有写操作。
Lucene的底层存储格式如图5-2所示。图5-2由词典和倒排序两部分组成,其中的词典就是Term的集合。词典中的Term指向的文档链表的集合,叫做倒排表。词典和倒排表是Lucene中很重要的两种数据结构,是实现快速检索的重要基石。词典和倒排表是分两部分存储的,在倒排序中不但存储了文档编号,还存储了词频等信息。