ElasticSearch
什么是ElasticSearch
开源搜索服务器项目
1.索引:
索引是ElasticSearch存放数据库的地方,可以理解为关系型数据库的一张表。
2.文档:
文档是ElasticSearch中存储的主要实体,可以理解为数据表中的一行数据。
文档由字段(行数据的列)组成,多值字段允许一个字段出现多次,一个字段对应一种类型。字段类型可以是复合的,字段可以包含其它子文档或数组。字段类型决定了搜索引擎执行何种操作,如比较、排序等,ElasticSearch可以自动确定字段类型。文档不需要有固定的结构,不同文档可以有不同的字段集合,而且在程序开发时不需要知道文档的字段。
文档类型:一个索引可以存储许多不同用途的对象,文档类型可以轻松区分这些对象。
3.节点和集群
为了能够处理大型数据集并实现容错功能,ElasticSearch支持在多台协同工作的服务器上运行。这些服务器被统称为一个集群,集群的每个服务器被称为一个节点。通过索引分片(分割成更小的个体)将海量数据进行分割并分布到不同的节点。通过副本(索引部分的拷贝)可以实现更强的可用性和更高的性能。
4.分片
当需要存储大规模文档时,由于RAM空间、硬盘容量等的限制,仅使用一个节点是不够的。另一个问题是一个节点的计算能力达不到期望的复杂功能的需求。在这些情况下,可以将数据切分,每个部分一个单独的Apache Lucene索引,称为分片(Shard)。每个分片可以被存储在集群的不同节点上。当需要查询一个由多个分片构成的索引时,ElasticSearch将该查询发送到每个相关的分片,并将结果合并。这些过程对应具体应用是透明的,无需知道分片的存在。
5.副本
为了提高查询的吞吐量或实现高可用性,可以启用分片副本功能。副本分片是对原始分片的一个精确拷贝,原始分片被称为主分片。对索引的所有修改操作都直接作用在主分片上,每个主分片可以有零个或多个副本分片。当主分片丢失时,集群可以将一个副本分片提升为新的主分片。
ElasticSearch中存储数据
REST每个请求都定向到地址路径部分所指示的具体对象上。
GET获得请求对象的当前状态
POST改变请求对象的状态
P