ElasticSearch和Solr一样,是基于ApacheLucene的最底层的公司级搜索引擎,可靠性很高。
ElasticSearch中的一些定义实际上对应于关系数据库查询。例如,数据库查询在es中称为索引,表在es中称为类型。
实际对应关系见下表。
ElasticSearch中的Replica就是复制的意思,建立副本有两个好处:1、可以分离一部分观看需求;2、如果集群中的某个片段丢失了,可以用它来找到所有数据信息的归宿。由于这个原因,复制片段和源片段不容易放在同一个节点上。ES中的每个索引都可以分成几个片,但不一定每个片都有副本。但是副本一旦建立,就会被称为主切片(作为副本源的切片),在建立索引的情况下可以指定切片和副本的总数。下图是复制和切片的平面图。slice和它的副本不容易在同一个节点上。
建立索引后,您可以随时动态更改总副本数,但不能在以后更改总切片数。默认情况下,Elasticsearch中的每个索引分为五个主要段和一组副本,这意味着如果您的集群中至少有两个节点,您的索引将有五个主要段和五个附加副本,因此每个索引总共有10个段。
当ES的一个节点启动时,它会根据广播程序的方法找到集群中的其他节点,并创建一个连接。
在集群中,其中一个节点将被选为主节点,这个主节点部门将管理集群。这个主节点对客户是完全透明的,客户不需要知道哪个节点是主节点。所有实际 *** 作都可以发送到所有节点。必要时,所有节点可以并行处理对其他节点的push子查询,并将获得的响应组装起来发送给客户。这种实际 *** 作不需要浏览主节点。
主节点加载集群信息内容。在整个加载过程中,它会检查碎片的状态,哪些碎片是主碎片,它们可以使用。在这里的一个步骤之后,所有的碎片都已经准备好了,但是还没有复制。接下来的实际 *** 作就是找到这些已经复制好的片段,进行复制。如果一切顺利,那么es就成功启动了,所有的片段和拷贝都已经准备好了。
ES工作时,主节点会监督所有节点是否正常。默认设置为:主节点每1s推送一次心率,请求超时30s,检测频率3次。如果超过3次,则认为该节点和主节点已经相互脱离。如果某个节点出了问题,ES认为这个节点被破坏了,那么这个节点就会被从集群中删除,ES会重新平衡所有的集群。
根据ESQueryDSL(基于json的数据库架构)查看数据信息。在ES中,每个视图分为两个过程,去中心化和聚集。去中心化是指查看所有相关切片,聚合是指将所有切片的查看结果进行组装和排列,然后返回给手机客户端。
ElasticSearch有四种方法来构建数据库查询。非常简单的方法是应用indexAPI,将一个文档发送到一个特殊的索引,这通常由curl工具来完成。第二,第三种方式是基于批量API和UDP批量API。它们之间的区别只取决于接口模式。第四种方法基于软件河。River在ElasticSearch上运行,可以从外部数据库查询数据信息并导入es。必须注意的是,数据信息的构建只能在切片上进行,不能在副本上进行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)