es结构
- es的一个index包含多个shared分片
- 每个分片包含多个segment
- 每个segment包含一个倒排序列表
- 倒排序列表结构
分词 | 文档id |
---|---|
hello | 2 |
es存储文档过程
当客户端saveIndex()之后,数据首先被放到Java的内存,然后过1s后会执行refresh操作,把内存的数据创建segment,并生成translog,segment也是放在缓存中,并提供查询功能,这是数据并没有写入磁盘,所以es会定期执行flush操作,将缓存中的segment利用translog全部写入磁盘并确保写入成功,同时创建一个commit point,整个过程就是一个完整的commit过程。
这个1s的refrsh操作,就是es近实时搜索的原理。
详细文档
看到一篇比较好的帖子
https://blog.youkuaiyun.com/weixin_33748818/article/details/91931945