es索引有哪几种常见状态的

 我来答
青春的誓
2022-12-15 · 超过26用户采纳过TA的回答
知道答主
回答量:718
采纳率:100%
帮助的人:21.3万
展开全部
ES新手入门学习的时候,经常会和MySQL做对比,一个索引可以理解为一个数据库,分片就可以理解为一张表被分割了shards_numbers - 1次,文档类型为type类型,在高版本中在逐渐被剔除。

ES官方也给出了答案:作者不希望不同类型的相同字段在同一个Lucene中。



索引的状态有:红色、黄色、绿色和黑色四种(ES插件可以看出来)。

green:健康状态,代表所有的主分片和副本分片都可用;

yellow:所有的主分片可用,部分副本分片不可用;

red:部分主分片不可用;

black:索引处于关闭状态,不对外进行交互,一般磁盘空间不足时ES会自动设置。

ES是一款近实时的搜索引擎,而非实时的搜索引擎。ES每秒产生一个新分段,新段先写入文件系统缓存(对读取可见),稍后再执行刷盘操作。由于新段不会立即刷盘,这个过程如果出现意外情况,存在数据丢失的风险,通常做法是记录事务日志。

分片的目的不只是为了分割巨大的索引,还可以并发读。一个索引包含多个分片,一个分片是一个Lucene索引,一个Lucene索引又由很多分段组成,每一个分段都是一个倒排索引。

段合并:ES会选择大小相似的段进行合并,ES每次refersh都会生成一个Lucene段,每次查询都会轮流检查每一个段,查询完对结果进行合并,段越多,搜索也就越慢。由于分段的不变性(访问不需要加锁),更新删除操作本质是标记删除,在段合并的过程中,标记删除的数据并不会写入到新段中,这样就达到了删除的目的。写操作先写Lucene段,再写translog,如果先写translog,写入Lucene段失败,则还需要对translog进行回滚处理。

ES的只读和删除设置,是对索引和磁盘的一种保护机制,当然也可以手动设置索引的只读和删除,以下是ES自动触发的:



索引的别名操作,比如要对一个月的所有索引(每天创建一个索引)进行处理,就可以为索引创建别名,一个索引可以有多个别名,一个别名也可以指向多个索引。

数据库
文章转载自李宇涛L,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

相关阅读
202
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式