从本篇文章开始介绍Lucene中提供的基于内存的搜索引擎的内容。我们通过MemoryIndex类的注释简单的了解下。
图1:
图1中中包含了两个重点内容:
- 单文档:使用MemoryIndex生成的索引是单文档(single-document)的,所有的索引数据都在同一篇文档中
- 使用场景:不适用于数量大并且需要持久化的数据场景;适用于数量较小、瞬时实时的数据、查询频繁的场景,在随后的文章中,我们会介绍MemoryIndex在Elasticsearch中的应用场景
内存索引
图2:
从图1中可以看出,内存索引的层次结构首先按照域名划分,属于同一个域名的索引又按照Posting、Terms、PointValues、FIeldInfo、Norm、DocValues划分(只列出了部分关键内容)。
在源码层面,使用了一个Map来存放所有的内存索引:
图3:
图3中的TreeMap的key跟value跟图2中的关系如下所示,即域名为key,该域名对应的索引信息为value,在代码中用Info对象存储:
剩余内容看这里:https://www.amazingkoala.com.cn/Lucene/Index/2021/0426/190.html