网上科普有关“es索引有哪几种常见状态的”话题很是火热,小编也是针对es索引有哪几种常见状态的寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
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
传统我们检索文章,是逐个遍历找到对应关键词的位置;
而倒排索引,是通过分词策略,形成词与文章的映射关系表,这种词典+映射表即为倒排索引。
倒排索引的底层实现是基于:FST(Finite State Transducer)数据结构。
lucene [lu'sen] 从4+版本后开始大量使用的数据结构是FST。FST有两个优点:
利用es的分片预分配。
不能,因为分片数是 文档路由算法 中重要的元素:
shard = hash(routing) % number_of_primary_shards
动态修改分片将意味着几乎重新索引文档数据,这是比仅仅将分片从一个节点复制到另一个节点更重量级的操作。
一个分片存在于单个节点,一个节点可以包含多个分片。
elasticSearch天然具有分布式的特征,实现水平扩容时通过 分片预分配 。在创建索引时,选择合适的分片数。
随着数据量的增加,可以动态的增加节点数,elasticSearch将会自动将分片分配到新增的节点上,当重新分配完成时,每个分片将会有接近至少两倍于之前的运算速度。
elasticSearch中新添加的索引默认被指定了5个主分片。这意味着我们最多可以将那个索引分散到5个节点上,每一个节点一个分片。
不能,一个分片并不是没有代价的。
es适当的预分配是好的,但是上千个分片就有些糟糕。
ElasticSearch推荐的最大JVM堆空间是30~32G, 所以把你的分片最大容量限制为30GB, 然后再对分片数量做合理估算. 例如, 你认为你的数据能达到200GB, 推荐你最多分配7到8个分片。
在开始阶段, 一个好的方案是根据你的节点数量按照1.5~3倍的原则来创建分片. 例如,如果你有3个节点, 则推荐你创建的分片数最多不超过9(3x3)个。当性能下降时,增加节点,ES会平衡分片的放置。
对于基于日期的索引需求, 并且对索引数据的搜索场景非常少. 也许这些索引量将达到成百上千, 但每个索引的数据量只有1GB甚至更小. 对于这种类似场景, 建议只需要为索引分配1个分片。如日志管理就是一个日期的索引需求,日期索引会很多,但每个索引存放的日志数据量就很少。
副本分片 可以实现高可用。当持有主分片的节点挂掉之后,一个副本分片将会晋升为主分片的角色。
在索引写入时,副本分片做着和主分片相同的工作。新文档首先被索引进主分片然后在同步到其他所有的副本分片。增加副本分片并不会增加索引容量。
副本分片可以服务于读请求,如果索引偏向查询,那么可以通过增加副本的数目来提升查询性能。但也要为此增加额外的硬件资源。
当使用上面配置时,每一个分片的副本分片数量为1个。
一个拥有两个主分片一份副本的索引可以在四个节点中横向扩展
Elasticsearch: 权威指南 ? 数据建模 ? 扩容设计 ? 扩容的单元
面试官:Elasticsearch如何设计索引?满分答案来了
elasticsearch 设置多少分片合适
新年手打,24道进阶必备Elasticsearch 面试真题(建议收藏!)
关于“es索引有哪几种常见状态的”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[衅梓辰]投稿,不代表小熊号立场,如若转载,请注明出处:https://xx-scm.com/cshi/202606-178608.html
评论列表(4条)
我是小熊号的签约作者“衅梓辰”!
希望本篇文章《es索引有哪几种常见状态的》能对你有所帮助!
本站[小熊号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上科普有关“es索引有哪几种常见状态的”话题很是火热,小编也是针对es索引有哪几种常见状态的寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助...