协调节点默认使用文档 ID 参与计算(也支持通过 routing),以便为路由提供合适的分片。

shard = hash(document_id) % (num_of_primary_shards)

1、当分片所在的节点接收到来自协调节点的请求后,会将请求写入到 Memory

Buffer,然后定时(默认是每隔 1 秒)写入到 Filesystem Cache,这个从 Momery

Buffer 到 Filesystem Cache 的过程就叫做 refresh;

2、当然在某些情况下,存在 Momery Buffer 和 Filesystem Cache 的数据可能会

丢失,ES 是通过 translog 的机制来保证数据的可靠性的。其实现机制是接收到请

求后,同时也会写入到 translog 中,当 Filesystem cache 中的数据写入到磁盘中

时,才会清除掉,这个过程叫做 flush;

3、在 flush 过程中,内存中的缓冲将被清除,内容被写入一个新段,段的 fsync

将创建一个新的提交点,并将内容刷新到磁盘,旧的 translog 将被删除并开始一

个新的 translog。

4、flush 触发的时机是定时触发(默认 30 分钟)或者 translog 变得太大(默认

为 512M)时;

补充:关于 Lucene 的 Segement:

1、Lucene 索引是由多个段组成,段本身是一个功能齐全的倒排索引。

2、段是不可变的,允许 Lucene 将新的文档增量地添加到索引中,而不用从头重

建索引。

3、对于每一个搜索请求而言,索引中的所有段都会被搜索,并且每个段会消耗

CPU 的时钟周、文件句柄和内存。这意味着段的数量越多,搜索性能会越低。

4、为了解决这个问题,Elasticsearch 会合并小段到一个较大的段,提交新的合并段到磁盘,并删除那些旧的小段。

详细描述一下 Elasticsearch 索引文档的过程?的更多相关文章

  1. 详细描述一下 Elasticsearch 索引文档的过程 ?

    面试官:想了解 ES 的底层原理,不再只关注业务层面了. 解答: 这里的索引文档应该理解为文档写入 ES,创建索引的过程. 文档写入包含:单文档写入和批量 bulk 写入,这里只解释一下:单文档写入流 ...

  2. 详细描述一下 Elasticsearch 索引文档的过程 ?

    这里的索引文档应该理解为文档写入 ES,创建索引的过程. 文档写入包含:单文档写入和批量 bulk 写入,这里只解释一下:单文档写入流程. 记住官方文档中的这个图. 第一步:客户写集群某节点写入数据, ...

  3. 分布式搜索elasticsearch 索引文档的增删改查 入门

    1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/ ...

  4. head插件对elasticsearch 索引文档的增删改查

    1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口.  RESTful接口URL的格式: http://localhost:9200 ...

  5. Elasticsearch 索引文档的增删改查

    利用Elasticsearch-head可以在界面上(http://127.0.0.1:9100/)对索引进行增删改查 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演 ...

  6. Elasticsearch 索引文档如何使用自动生成 Id?

    一个文档的 _index . _type 和 _id 唯一标识一个文档. 我们可以提供自定义的 _id 值,或者让 index API 自动生成. 如果你的数据没有自然的 ID, Elasticsea ...

  7. 关于Elasticsearch文档的描述以及如何操作文档的详细总结

    文档 什么是文档 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象. 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些 ...

  8. Elasticsearch必知必会的干货知识一:ES索引文档的CRUD

    ​ 若在传统DBMS 关系型数据库中查询海量数据,特别是模糊查询,一般我们都是使用like %查询的值%,但这样会导致无法应用索引,从而形成全表扫描效率低下,即使是在有索引的字段精确值查找,面对海量数 ...

  9. Elasticsearch 管理文档

    ES支持近实时的索引.更新.查询.删除文档,近实时就意味着刚刚索引的数据需要1秒钟后才能搜索到,这也是与传统的SQL数据库不同的地方. 更多的ES文档资料参考:Elasticsearch官方文档翻译 ...

随机推荐

  1. kali linux 安装lanmp遇到的问题

    安装LANMP步骤(需要ROOT权限)2020版本以上的Linux kali需要百度参考修改权限得文章 root@kali:~# wget http://dl.wdlinux.cn/files/lan ...

  2. [c语言]c语言中的内存分配[转]

    在任何程序设计环境及语言中,内存管理都十分重要.在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的.因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题. 第1节主要介绍内存管理基本概念,重 ...

  3. 【C# .Net GC】强制垃圾回收 和System GC

    属性 GC.MaxGeneration:获取系统当前支持的最大代数. 方法 GC.GetTotalMemory(bool forceFullCollection) 方法  true表示该方法先做垃圾收 ...

  4. Map格式-joson格式

    mapStr: {CHAR=UTF-8, DATA=eyJNRVJDSEFOVCI6IjEwMDEiLCJWRVJTSU9OIjoiMS4wLjAiLCJUUkFERSI6IjIwMTgwNjEyMT ...

  5. 从零开始,开发一个 Web Office 套件(6):光标 & Click 事件

    <从零开始, 开发一个 Web Office 套件>系列博客目录 这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office ...

  6. HTML学习如何布局

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...

  7. C# Winform中FpSpread表格控件设置固定的(冻结的)行或列

    在项目中我们经常会用到固定表头的操作,FpSpread提供了冻结行或列的属性. 你可以冻结表单中的行或列(使其不可滚动). 你可以冻结任意个表单顶部的行,使其成为前导行,你也可以冻结左侧任意多个列,使 ...

  8. VirtualBox虚拟机--导入导出系统&主机启用硬件虚拟化

    问题概述:在往新电脑中导入其他电脑中导出的虚拟机后,启动该虚拟机系统时报错说主机不支持硬件虚拟化. 将电脑1中VirtualBox的一个虚拟机系统win7导出成.ova格式的文件, 在电脑2中安装Vi ...

  9. 被vector动态扩容给坑了!

    大家好,我是东北码农.记录一下工作中事. 前几天,运维同事给我反馈了一个问题: 通过监控发现,线上的一个服务,业务线程时不时会出现卡顿,卡顿大约持续几秒. 我们做金融系统后台开发的,对性能要求很严格的 ...

  10. laravel 框架 ajax无页面刷新删除

    ....................HTML页面<!doctype html><html lang="en"><head> <meta ...