社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

999 - Elasticsearch 基本概念

歌哥 • 6 年前 • 448 次点击  
阅读 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