search:搜索
elastic:弹性的
功能:
搜索引擎,全文索引的搜索引擎 文件存储
概述:
elasticsearch是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索ApacheLucene基础上的搜索引擎,它不仅可以进行全文搜索,还可以进行以下工作:
1.分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索
2.实时分析的分布式搜索引擎
3.可以扩展到上百台服务器(水平扩展非常方便),处理PB级别的结构化或非及结构化数据
4.提供了REST API(软件和软件的接口)的操作接口,开箱即用
存储单位:
1YB=1024ZB
1ZB=1024EB
1EB=1024PB
1PB=1024TB
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B
基本概念:
elasticsearch使面向文档型数据库,一条数据在这里就是一个文档
1、索引(index):
索引使具有相似特性的文档集合。例如:可以为客户数据提供索引,为产品目录建立另一个索引,以及为订单数据建立另一个索引。索引由名称(必须全部为小写)标识,该名称用于在对其中的文档执行索引、搜索、更新和删除操作时引用索引。在单个集群中,您可以定义尽可能多的索引。(可以将索引理解为数据库里面的一个库,分别存储不同的数据)
2、文档(document):
Elasticsearch文档是一个存储在索引中的JSON文档。每个文档都有一个类型和对应的ID,这是唯一的。如:
{
“index”:“packtpub”,
“type”:“elk”,
“_id”:“1”,
“_version”:1,
“found”:true,
”_source“:{
book_name:“learning elk”,
book_author:“鲁迅”
}
} #json格式
3、字段(filed)
文档内的一个基本单位,键值对形式(book_name:“learning elk”)
4.类型(Type)
类型是index下的一个逻辑分类。比如:wealth这个index里,可以按照城市分组,也可以按照气候类型分组,这种分组就叫做类型
5.映射(Mapping)
映射用于映射文档的每个filed及其对应的数据类型,例如字符串、整数、浮点数、双精度数、日期等等。
6.分片(Shard)
shard:单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
索引可以理解为sql中的库。
主分片(实际工作的)/复制分片(备份的)(两个分片一模一样,)
主分片:shard/primary shard
复制分片:replica shard
主分片和复制分片不会放在一起
7.分词
把一段文本中的词按一定规则进行切分
8.主分片(shard/Primary shard)与复制分片(replica shard)
复制分片通常驻留在一个不同的节点上,而不是主碎片,在故障转移和负载平衡的情况下,可以满足多个请求
9.集群(Cluster)
集群式存储索引数据的节点集合。elasticsearch提供了水平的可伸缩性用以存储集群中的数据。每个集群都由一个集群名称来表示,不同的节点指明集群名称连接在一起。
10.节点(Node)
节点是一个单独远行的elasticsearch实例,它属于一个集群。默认情况下,elasticsearch中的每个节点口加入名为“elasticsearch”的集群。每个节点都可以在elasticsearch中使用自己的elastic search.yml,他们可以对内存和资源分配有不同的设置。
es集群分类
1. 数据节点(Data Node)
数据节点索引文档并对索引文档执行搜索。建议添加更多的数据节点,以提高性能或扩展集群。通过在
elasticsearch中设置这些属性,可以使节点成为一个数据节点。elasticsearch.yml配置
2. 管理节点(Master Node)
主节点负责集群的管理。对于大型集群,建议有三个专用的主节点(一个主节点和两个备份节点),它们只作为
主节点,不存储索引或执行搜索。
3. 路由节点亦称负载均衡节点(Routing Node or load balancer node)
这些节点不扮演主或数据节点的角色,但只需执行负载平衡,或为搜索请求路由,或将文档编入适当的节
点。这对于高容量搜索或索引操作非常有用。
4. 提取节点(lngest节点)
可以创建多个预处理管道,用以修改传入文档