Python社区  »  Elasticsearch

999 - Elasticsearch 基本概念

歌哥 • 1 周前 • 14 次点击  
阅读 7

999 - Elasticsearch 基本概念

Elasticsearch 简介

  • Elasticsearch是一个高可扩展的,全文搜索分析引擎。
  • 可以近实时地存储、搜索以及分析海量数据。
  • 通常作为底层引擎为应用提供复杂搜索功能。
  • 应用:
    • 搜索功能
    • 自动提示
    • 聚合分析日志
    • 等等...

Near Realtime(NRT,近实时)

从存入到可搜索,只有轻微的延迟(约1秒)

Cluster(集群)

集群是一个或多个节点(服务器)的集合。整个集群共同保存数据,并提供跨节点的联合索引与搜索功能。
集群由唯一名称标识,Elasticsearch的默认集群名称为“elasticsearch”。

Node(节点)

节点作为集群的一个服务器,提供存储数据,集群的索引与搜索功能。
Elasticsearch节点名称默认为一个随机的UUID的前7位。

Index(索引)

索引是相似特征的文档的集合。例如,你可以同时拥有用户数据索引、订单数据索引以及商品目录索引。
索引由名称标识(全小写),通过名称引用索引对索引中的文档进行索引、搜索、更新、删除等操作。

Type(类型)

已弃用,在将来更高版本中会删除。
类型作为索引的逻辑分区,允许同一个索引中存储不同类型的文档,例如用户类型、博客类型等。

Document(文档)

文档是Elasticsearch的基本信息单元,例如,一个文档表示产品,一个文档表示客户...

Shards(分片)与Replicas(副本)

单节点受硬盘空间的限制,以及查询速度会随着数据增加而变慢。
Elasticsearch将索引拆分为多个分片,每个分片都是一个功能齐全且独立的索引,存储到不同的节点上。有两个好处:

  • 可以水平切割/收缩容量。(针对单节点受硬盘空间的限制
  • 允许在多个节点上并行操作,从而提高性能和吞吐量。(针对查询速度会随着数据增加而变慢

由于在网络/云环境中,随时可能发生故障:例如分片/节点不知怎么下线了或者因任何原因消失。
Elasticsearch允许将分片的一个或多个副本,制作成副本分片或简称为副本。使用副本有两个理由:

  • 在分片/节点故障时提供高可用。注意,副本分片不会与原分片存放到同一个节点上。
  • 可以扩展搜索量/吞吐量,因为可以在所有副本是并行搜索。

总而言之,一个索引可以被拆为多个分片,一个分片可以有0到多个副本分片。
Elasticsearch默认5个分片,1份副本,一共10个分片(5个主分片,5个副本分片)。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46601
 
14 次点击  
分享到微博