es分片(搜索)

分片设计与管理
ES 中的文档存储在索引中,索引的最小存储单位是分片,不同的索引存储在不同的分片中。

当讨论分片时,一般是基于某个索引的,不同索引之间的分片互不干扰。

分片分为主分片和副本分片两种;副本分片是主分片的拷贝,主要用于备份数据。

关于主副分片数的设置:

主分片数:主分片数在索引创建时确定,之后不能修改。
在 ES 7.0 以后,一个索引默认有一个主分片。
一个索引的主分片数不能超过 1024。
副本分片数:副本分片数在索引创建之后可以动态修改。
副本分片数默认为 1。
关于每个节点上的分片数的设置,可参考这里。

(1)主分片的设计
如果某个索引只有一个主分片:

优点:查询算分和聚合不精准的问题都可避免。

缺点:集群无法实现水平扩展。

a、因为索引(不管该索引的数据量达到了多大)只能存储在一个主分片上(一个分片不能跨节点存储/处理);

b、对于单个主分片的索引来说,即使有再多的数据节点,它也无法利用。

如果某个索引有多个主分片:

优点:集群可以实现水平扩展。

a、对于拥有多个主分片的索引,该索引的数据可以分布在多个主分片上,不同的主分片可以分布在不同的数据节点中;这样,该索引就可以利用多个节点的读写能力,从而处理更多的数据。

b、如果当前的数据节点数小于主分片数,当有新的数据节点加入集群后,这些主分片就会自动被分配到新的数据节点上,从而实现水平扩容。

缺点:但是主分片数也不能过多,因为对于分片的管理也需要额外的资源开销。主要会带来以下问题:

a、每次搜索/聚合数据时需要从多个分片上获取数据,并汇总;除了会带来精准度问题,还会有性能问题。

b、分片的 Meta 信息由 Master 节点维护管理,过多的分片,会增加 Master 节点的负担。

对于分片的设计建议:

从分片的存储量考虑:

a、对于日志类应用,单个分片不要大于 50G;

b、对于搜索类应用,单个分片不要大于 20G;

从分片数量考虑:

a、一个 ES 集群的分片**(包括主分片和副本分片)**总数不超过 10 W。

(2)副本分片的设计
副本分片是主分片的备份:

优点:
可防止数据丢失,提高系统的可用性;
可以分担主分片的查询压力,提高系统的查询性能。
缺点:
与主分片一样,需要占用系统资源,有多少个副本,就会增加多少倍的存储消耗。
会降低系统的写入速度。
3、基本架构:
ES是一个具有搜索引擎,NOSQL数据库功能,RESTful风格,基于Java Lucene架构构建,可用作全文搜索,结构化搜索,近实时分析的开源系统;

ES是面向文档性的数据库,存储的是整个文档或者对象,不但会存储他们,还会为他们建立索引,提供搜搜功能;

4、怎样提升检索效率:
filesystem cache
ES的搜索引擎是严重的依赖底层的filesystem cache,如果给filesystem cache更多的内存,尽量让内存可以容纳所有的index segment file 索引数据文件

数据预热
对于那些你觉得比较热的数据,经常会有人访问的数据,最好做一个专门的缓存预热子系统,就是对热数据,每隔一段时间,你就提前访问以下,让数据进入filesystem cache里面去,这样期待下次访问的时候,性能会更好一些。

冷热分离

5、性能优化:
​ 关于ES的性能优化,数据拆分,将大量的搜索不到的字段,拆分到别的存储中去,这个类似于MySQL的分库分表的垂直才分。

document的模型设计
​ 不要在搜索的时候去执行各种复杂的操作,尽量在document模型设计的时候,写入的时候就完成了,另外对于一些复杂的操作,尽量要避免

分页性能优化
​ 翻页的时候,翻得越深,每个shard返回的数据越多,而且协调节点处理的时间越长,当然是用scroll,scroll会一次性的生成所有数据的一个快照,然后每次翻页都是通过移动游标完成的。 api 只是在一页一页的往后翻

四、竞品对比
1、solr简述:
Solr是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理;
Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持;
Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API;
Solr强大的外部配置功能使得无需进行Java编码,便可对其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制。
————————————————
版权声明:本文为CSDN博主「执行者_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_51523569/article/details/119537801

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值