首页 > 其他分享 >搜索引擎 - ES

搜索引擎 - ES

时间:2023-03-05 12:37:10浏览次数:34  
标签:Pattern 模式 搜索引擎 DataNode 分片 节点 ES

ES集群有哪些类型的节点,以及节点对应的职责是什么?

主要有Master节点和DataNode节点。

Master节点主要负责: 管理索引(创建索引、删除索引)、分配分片 维护元数据 管理集群节点状态 不负责数据写入和查询,比较轻量级。 在Elasticsearch集群中,会有N个DataNode节点。DataNode节点主要负责: 数据写入、数据检索,大部分Elasticsearch的压力都在DataNode节点上 在生产环境中,内存最好配置大一些

 ES文档写入原理?

1.选择任意一个DataNode发送请求,例如:node2。此时,node2就成为一个coordinating node(协调节点)。 2.计算得到文档要写入的分片。  `shard = hash(routing) % number_of_primary_shards`。  routing 是一个可变值,默认是文档的 _id。 3.coordinating node会进行路由,将请求转发给对应的primary shard所在的DataNode(假设primary shard在node1、replica shard在node2)。 4.node1节点上的Primary Shard处理请求,写入数据到索引库中,并将数据同步到Replica shard。 5.Primary Shard和Replica Shard都保存好了文档,返回client。

ES检索原理?

client发起查询请求,某个DataNode接收到请求,该DataNode就会成为协调节点(Coordinating Node) 协调节点(Coordinating Node)将查询请求广播到每一个数据节点,这些数据节点的分片会处理该查询请求  每个分片进行数据查询,将符合条件的数据放在一个优先队列中,并将这些数据的文档ID、节点信息、分片信息返回给协调节点  协调节点将所有的结果进行汇总,并进行全局排序 协调节点向包含这些文档ID的分片发送get请求,对应的分片将文档数据返回给协调节点,最后协调节点将数据返回给客户端。

什么是倒排索引? 有什么好处?

索引: 从ID到内容。
倒排索引: 从内容到ID。好处: 比较适合做关键字检索。可以控制数据的总量。提高查询效率。
搜索引擎为什么比MySQL查询快? lucence
文章-》term ->排序 term dictionary -> term index -》 Posting List ->[文章D ,[在文章中出现的偏移量],权重,

相关度算法:TF/IDF.

强平衡二叉树和弱平衡二叉树有什么区别

强平衡二叉树AVL树,弱平衡二叉树就是我们说的红黑树.
1.AVL树比红黑树对于平衡的程度更加严格,在相同节点的情况下,AVL树的高度低于红黑树
2.红黑树中增加了一个节点颜色的概念
3.AVL树的旋转操作比红黑树的旋转操作更耗时.

二又搜索树和平衡二叉树有什么关系?

平衡二叉树也叫做平衡二叉搜案树,是二叉搜案树的升级版,二又搜索树是指节点左边的所有节点都比该节点小,节点右的节点都此该节点大,而平二又搜索树是在二叉搜索的基础上还规定了节点左右两边的子树高度差的绝对值不能超过1.

设计模式有哪些大类,及熟悉其中哪些设计模式

设计模式分为三大类:

1.创建型

a.工厂横式(Factory Pattern)
b.抽象工厂模式(Abstract Factory Pattern)
c单例模式(Singleton Pattern)
d.建造者模式(Builder Pattern)
e.原型模式(Prototype Pattern)

2.结构型

a.适配器模式(Adapter Pattern)
b.桥接模式(Bridge Pattern)
c过滤器模式 (Filter、Criteria Pattern)
d.组合模式(Composite Pattern)
e.装饰器模式(Decorator Pattern)
f.外观模式(Facade Pattern)
g.享元模式(Flyweight Pattern)
h.代理模式(Proxy Pattern)

3.行为型

a.责任链模式(Chain of Responsibility Pattern)
b.命令模式(Command Pattern)
c解释器模式(nterpreter Pattern)
d.迭代器模式(lterator Pattern)
e.中介者模式(Mediator Pattern)
f.备忘录模式(Memento Pattern)
g.观察者模式(Observer Pattern)
h.状态模式(State Pattern)
i.空对象模式(Null Object Pattern)
j.策略模式(Strategy Pattern)
k.模板模式(Template Pattern)
l访问者模式(Visitor Pattern)

遇到过哪些设计模式?

在学习一些框架或中间件的底层源码的时候遇到过一些设计模式:
1.代理模式:Mybatis中用到D动态理来生成Mapper的代理对象,在执行代理对象的方法时会去执SQL,Spring中AOP、包括@oniguration注解的底层实现也都用到了代理模式
2.责任链模式:Tomcat中的Pipeline实现,以及Dubbo中的Filter机制都使用了责任链模式
3.工厂模式:Spring中的BeanFactory就是一种工厂模式的实现
4.适配器模式:Spring中的Bean销毁的生命周期中用到了适配器模式,用来适配各种Bean销毁逻辑的执行方式
5.外观模式:Tomcat中的Request和RequestFacade之间体现的就是外观模式
6.模板方法模式: Spring中的refresh方法中就提供了给子类继承重写的方法,就用到了模板方法模式

ES部署时,要如何进行优化?

1、集群部署优化。
调整ES的一些重要参数。path.data目录尽量使用SSD。定时JVM堆内存大小。
关于ES的参数,大部分情况下是不需要调优的,如果有性能问题,最好的办法是安排更合理的sharding布局并且增加节点数量。
2、更合理的sharding布局
让sharding和对应的replica sharding尽量在同一个机房。
3、Linux服务器上的一些优化策略:
不要用root用户;修改虚拟内存大小; 修改普通用户可以创建的最大线程数
ES生态:ELK日志收集解决方案- filebeat(读log日志)-> logstash -> ElasticSearch -> kibana、 Grafana、自研的报表平台

标签:Pattern,模式,搜索引擎,DataNode,分片,节点,ES
From: https://www.cnblogs.com/zhf123/p/17180188.html

相关文章

  • ruby postgresql 模糊搜索
    客户需求,通过name,email两列中的字段进行搜索过滤这项目之前用的​​pg_search​​​email的addresses是不能过滤的,例如martin@163.com,只能搜martin,搜163.com是搜不到的......
  • js es6 判断数组对象中包含是否含有某个属性值
    if(data&&data.hasOwnProperty('Rows')){(data.Rows.Row||[]).map((row)=>{if(row.hasOwnProperty("Summary")){......
  • 10-11——ES6
    第十周ES6——1变量ES6ECMA规定了JS的标准,主要包括:语法、APIES6也是ES2015JavaScript=ECMAScript+DOM+BOMlet和const声明变量和常量;不知......
  • 带加权的贝叶斯自举法 Weighted Bayesian Bootstrap
    在去年的文章中我们介绍过BayesianBootstrap,今天我们来说说WeightedBayesianBootstrapBayesianbootstrap贝叶斯自举法(Bayesianbootstrap)是一种统计学方法,用于在缺乏......
  • mybatis中遇到的一个小问题【There is no result map named java.lang.Integer in thi
    在使用mybatis的时候,配置一个查询总数的SQL语句,发现提示下面的问题:Thereisnoresultmapnamedjava.lang.IntegerinthisSqlMap百思不得骑姐<selectid="UPP_COUPON_T......
  • Kubernetes的工作机制
    云计算时代的操作系统Kubernetes是一个生产级别的容器编排平台和集群管理系统,能够创建、调度容器,监控、管理服务器。Kubernetes的基本架构操作系统的一个重要功能就是......
  • 如何安装和配置waveshare SIM8202G-M2 5G模块驱动?
    为了使用waveshareSIM8202G-M25G模块,需要先安装和配置驱动。官方链接:https://www.waveshare.net/wiki/SIM8200EA-M2_5G_HAT#Raspberry.E4.BD.BF.E7.94.A8sudoapt-get......
  • K8S CKA 1.26 模拟环境 实验环境(一键导入) Kubernetest v1.26题库
    K8SCKA1.26考试环境,按照CKA最新原题搭建的,模拟环境已集成考题,可直接模拟练习,做题实操。资料包含:2023年3月最新题库+答案解析+考试笔记+模拟环境+技术支持+在线辅导答疑......
  • 题解 CF1406D【Three Sequences】
    看错题了,我很生气。problemYouaregivenasequenceof$n$integers$a_1,a_2,\ldots,a_n$.Youhavetoconstructtwosequencesofintegers$b$and$c......
  • minikube搭建Kubernetes环境
    前言Kubernetes一般都运行在大规模的计算集群上,管理很严格,Kubernetes充分考虑到了这方面的需求,提供了一些快速搭建Kubernetes环境的工具。minikube它是一个“迷你”......