实时检索

实时检索要求前一毫秒把文档写入索引,后一毫秒就能够检索出来。

什么存储设备速度快?内存。所以实时检索的实现,都把新增的数据放到内存里面。

下面是一个基本的实时检索的结构:

写入文档的时候,文档会被写入到内存索引;

删除文档的时候,删除会同时提交给内存索引和磁盘索引,磁盘索引使用一个常驻内存的删除Bitmap 来标志删除;

在查询的时候,把磁盘索引的结果进行删除过滤后,和内存索引的结果合并。

这里有一个需要注意的问题:排序。应该先分别从内存和磁盘获得一定数据,然后根据数据的权重进行合并,得到一个最后的结果。