主要知识点
- document增的原理
- document删的原理
- document改的原理
一、document增的原理
一个document存入es大致要分以下几个步骤
(1)数据写入buffer,
(2)写入buffer的数据在达到一定条件(时间等)进行commit point(提交点)
(3)buffer中的数据经过commit 写入新的index segment
(4)index segment的数据在达到一定条件后写入os cache中,
(5)达到一定条件后os chche中的数据被fsync强制刷到磁盘上,完成保存到磁盘后,新的index sgement被打开,供search使用,并且buffer被清空
二、document删的原理
每次commit point时,会有一个.del文件,标记了哪些segment中的哪些document被标记为deleted了,在搜索的时候,会依次查询所有的segment,从旧的到新的,比如被修改过的document,在旧的segment中,会标记为deleted,在新的segment中会有其新的数据。对于匹配到的document,如果发现已经在.del文件被标示为deleted了,就不会作用结果返回。
三、document改的原理
es的修改或更新其实是分两部进行了,先删除,再增加。
四、其他
在es底层用的是lucen,lucen底层的index分为多个segment,每个segment存放部分数据。
`。