es查询字段更新记录_es 知识点记录

本文介绍了Elasticsearch的数据写入过程,包括内存buffer、segment生成、translog日志,以及实时检索机制。此外,讨论了数据恢复的flush过程、副本分片存储、字段存储选项的控制,如关闭_source、doc_values、倒排索引和all字段,以优化存储和查询性能。
摘要由CSDN通过智能技术生成

es 知识点

[TOC]

数据写入过程

Lucene 把每次生成的倒排索引,叫做一个段(segment)。然后另外使用一个 commit 文件,记录索引内所有的 segment。而生成 segment 的数据来源,则是内存中的 buffer。

1、数据写入 --> 进入ES内存 buffer (同时记录到translog)--> 生成倒排索引分片(segment)

2、将 buffer 中的 segment 先同步到文件系统缓存中,然后再刷写到磁盘

ES实时检索

由于在buffer中的索引片先同步到文件系统缓存,再刷写到磁盘。

在检索时可以直接检索文件系统缓存的segment,保证了实时性。

把内存中的数据转换成segment的过程,称refresh。在 Elasticsearch 中,默认 1 秒执行一次。

refresh_interval 参数可修改刷新缓存的时间间隔

ES 同步到磁盘失败:数据恢复-flush过程

由于Elasticsearch 在把数据写入到内存 buffer 的同时,其实还另外记录了一个 translog日志,如果在这期间故障发生时,Elasticsearch会从commit位置开始,恢复整个translog文件中的记录,保证数据的一致性。

等到真正把 segment 刷到磁盘,且 commit 文件进行更新的时候, translog 文件才清空。

副本分片的存储过程

默认情况下ES通过对每个数据的id值进行哈希计算,对索引的主分片取余,就是数据实际应该存储的分片ID。

由于取余这个计算,完全依赖于分母,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值