Elasticsearch是一个基于Lucene二次开发的开源搜索引擎。它稳定、可靠、快速、而且具有比较好的水平扩展能力,为分布式环境设计、在云计算中被广泛的应用。Elasticsearch提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。通过该接口,用户可以通过浏览器与Elasticsearch通信。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布。Wikipedia、Stack、Overflow、GitHub等都是基于Elasticsearch来构建的搜索引擎,具有实时搜索、稳定、可靠、快速、安装使用方便等特点。
Elasticsearch 的基础核心概念:
接近实时(NRT)
Elasticsearch是一个搜索速度接近实时的搜索平台,响应速度非常快,这意味着从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)。
集群(cluster)
一个集群就是由一个或多个节点组织在一起,在所有的节点上存放用户数据,并一起提供索引和搜索功能。其中一个节点为主节点,这个主节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能。每个集群都有一个唯一性标示的名称,默认是Elasticsearch,集群名字很重要,每个节点是基于集群名字加入到其集群中的。因此,确保在不同环境中使用不同的集群名字。一个集群可以只有一个节点,为了具有更好的容错性。强烈建议在配置Elasticsearch时,配置成集群模式。
节点(node)
节点就是一台单一的服务器,是集群的一部分,多个节点组织为一个集群,每个节点都存储数据并参与集群的索引和搜索功能。和集群一样,节点也是通过名字来标识,默认情况下,在节点启动时随机分配的字符名。也可以自己定义。该名字也很重要,在集群中用于识别服务器对应的节点。节点可以通过指定集群名字来加入到集群中。默认情况,每个节点都已经加入到Elasticsearch 集群。如果集群中由多个节点。它们将会自动组建一个名为Elasticsearch 的集群。
索引(index)
类似于关系型数据库中的“库”。当索引一个文档后,就可以使用Elasticsearch 搜索到该文档,也可以简单的将索引理解为存储数据的地方,可以方便的进行全文索引。在index下面包含存储数据的类型(Type),Type类似于关系型数据库中的"表",用来存放具体数据,而Type下面包含文档(document),文档相当于关系型数据库的""记录",一个文档是一个可被索引的基础信息单元。
类型(type)
在一个索引中,可以定义一种或多种类型。一个类型是索引的一个逻辑上的分类/分区,其语义完全由用户来定。通常会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可以为评论数据定义另一个类型。类型相对于关系型数据库的表。
文档(document)
一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以JSON ( Javascript ObjectNotation)格式来表示,而JSON是一个到处存在的互联网数据交互格式。
在一个index/type 里面,只要你想,你可以存储任意多的文档。注意,虽然一个文档在物理上位于一个索引中,实际上一个文档必须在一个索引内被索引和分配一个类型。文档相对于关系型数据库的列。
分片和副本(shards & replicas)
Elasticsearch将索引分成若干个部分,每个部分称为一个分片,每个分片就是一个全功能的独立的索引。分片的数量一般在索引创建前指定,且创建索引后不能更改。
(2):分片的两个最主要原因:《1》:水平分割扩展,增大存储量
《2》:分布式并行跨分片 *** 作,提高性能和吞吐量心
一个好的数据春初方案要求无论何种故障〈如节点丕可用)下数据都可用,并且具有较高的存储效率。为此,Elasticsearch将索引分片复制一份货多份,称为副本。副本是索引的另一个备份,用于数据冗余以及负载分担。默认情况下 Elasticsearch自动对索引请求进行负载分担。
总之,索引可以被分为若干个分片。这些分片也可以被复制О次(意思是没有复制)或多次,当副本存在时,作为复制源的分片称为主分片,而作为复制目标的分片称为复制分片。分片和副本的数量可以在索引创建时指定。在索引创建之后,可以改变副本的数量,但是不能改变分片的数量。默认情况下,Elasticsearch中的每个索引被分成5个主分片和1个副本。在两个节点的场景中,每个索引将会有5个主分片和另外5个副本分片;每个索引总共就有10个分片。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)