检索系统学习笔记

1.双缓冲机制

倒排索引在内存中应该如何实时更新呢,因为会出现多个用户同时更新索引的情况,简单地读写锁会降低性能。

双缓冲机制是无锁的更新方法,使用A、B两份倒排索引,一份当前读,一份用来更新索引,用来读的在当前不能被更新,然后定期的两个交换身份。

2.全量索引结合增量索引的更新方法

双缓冲机制解决的是索引完全在内存中,不用加锁对倒排索引进行更新的问题,它的不足之处在于,对于海量的索引数据,必须存储在磁盘中的是不能使用的。

全量索引结合增量索引是指,根据全部数据在磁盘构建倒排索引,在需要更新索引时,在内存构建。对于查找,需要同时检查磁盘上的全量索引表和内存中的增量索引表,然后最后合并结果。

全量索引和增量索引,对于删除的索引,直接在内存构建一个删除列表。

3.相同点

双缓冲机制和全量索引与增量索引,这两种都是通过读写分离来实现无锁更新。

相关推荐
~kiss~4 分钟前
大模型的四类Cache - KV, Prefix, Prompt and Semantic Caching
学习
Ray Wang19 分钟前
RAG学习
学习
励志不掉头发的内向程序员35 分钟前
【LibreCAD 2D架构】从鼠标点击到图形创建:RS_ActionDrawLine交互流程与状态机解析
开发语言·c++·qt·学习·系统架构·计算机外设·交互
Htr_1 小时前
Reflexio 使用指南:让 AI 智能体从每次交互中持续学习
人工智能·学习·交互
Chill601 小时前
ChatGPT桌面版打不开
学习
sunshine22 girl2 小时前
Java学习一 环境配置3 Idea的基本设置和插件
java·学习
clorinda2 小时前
OpenCV 学习实践:从人脸检测到人脸识别
人工智能·opencv·学习
陈年老古董4 小时前
OpenCV 人脸识别学习笔记:从Haar检测到三种特征脸算法实战
笔记·opencv·学习·人脸识别
旖旎夜光4 小时前
【LangChain实战】LangChain 学习笔记(二):结构化输出、流式传输与消息管理
人工智能·笔记·python·学习·ai·langchain