elasticsearch基本概念
NRT(近实时搜索)
Elasticsearch是一个NRT平台。这意味着当你索引一个文件时,在细微的延迟(通常1s)之后,该文件才能被搜索到。
Cluster(集群)
cluster是在所有节点中保存全部数据且提供联合索引和搜索功能的一个或多个节点(服务器)的集合。
每个cluster有唯一的名称,默认为”elasticsearch”。该名称很重要,因为如果节点通过cluster名称加入cluster,那么该节点就只能成为该cluster的一部分。确保在不同环境中不重复使用相同的cluster名称,除非节点加入了错误的cluster。
举例,对development、stage和production集群分别使用logging-dev、logging-stage和logging-prod。
注意,cluster可以只配置一个节点。而且,你可能也会有多个独立的clusters,每个cluster都有它自己的唯一的名称。
指定cluster名称命令
./elasticsearch -- cluster.name my_cluster_name
Node(节点)
一个node是一个server,是cluster的一部分,它存储数据且参与cluster的索引和查询功能。和cluster一样,每个节点都有自己的名称,默认在启动时赋予一个随机的人名。如果你不想要默认的名称,可以自定义名称。该名称对cluster管理很有用,特别是当你想确认哪个server对应哪个节点时。
一个node可以配置指定cluster名称加入该cluster。默认,每个节点加入名为”elasticsearch”的cluster。
一个cluster可以包含任意数量的node。而且,如果没有其他node运行,启动一个node会默认形成一个单节点cluster,名为”elasticsearch”。
指定node名称命令
./elasticsearch--node.namemy_node_name
Index(索引)
index是具有相似特征的文档集合。例如,你可以有顾客数据的index、商品种类的index和订单数据的index。
每个index都有唯一的名称(必须小写),当执行索引、搜索、更新和删除操作时都需要根据该名称找到对应的index。
一个cluster可以包含任意数量的index。
Type(类型)
在一个index中,可以定义一个或多个type。type是index的逻辑分类。
通常,type拥有一组通用field的文档集合。举例,你运行一个博客平台,把全部数据存储在一个index中。在这个index中,你可以为用户数据定义一个type,为博客数据定义一个type,为评论数据定义一个type。
Document(文档)
document是索引的基本单元信息。举例,你有一个客户的document、一个商品的document和一个订单的document。该document用JSON表示。
一个index/type中,可以包含任意多的document。注意,虽然document物理上存在index中,document实际上必须被分配到index中的type上。
Shards & Replicas(分片和副本)
一个index可以存储数量超出硬件限制的数据。举例,一个index包含10亿文档,占据1TB硬盘空间,就会导致无法放在单个节点硬盘上或者响应request太慢。
为了解决这个问题,Elasticsearch提供了将索引分片的技术,称为shard。当创建一个index,可以指定shard的数量。每个shard内部都是全功能而且相互独立的”index”,可以放在cluster上的任意node上。
Sharding重要的原因:
- 允许横向扩展容量
- 分布式并行操作shard(可能在多个node上),因而提高性能
分片是如何分布、文档是如何聚合回搜索结果的机制完全由Elasticsearch管理,对用户透明。
在网络/云环境中,故障是很常见的,比如一个shard/node宕了,因而容错机制非常有效,也是被推荐的。为此,Elasticsearch允许创建index的shard的一个或多个副本,称为replica。
Replication重要的原因:
- 提供高可用性,以防shard/node失效。注意,一个replica shard绝对不能分配到它原先所在node(即创建副本的原本所在的node)。
- 允许扩展搜索容量,因为搜索可以并行在所有replica上执行
总结一下,每个index可以被分为多个shard。一个index也可以被复制0份或者多份。一旦复制过,每个index将有主shard(创建副本的原本所在的shard)和replica shard(主shard的副本)。shard和replica的数量可以在index创建的时候自定义。index创建之后,你可以动态改变replica的数量,但是不能改变shard的数量。
默认的,每个index被分配5个主shard和1个replica,这意味着,如果你在cluster中有至少两个节点,每个index将有10个shard,分别是5个主shard和另外5个replica shard(1个完整的replica)。
elasticsearch基本概念的更多相关文章
- ElasticSearch 核心概念
ElasticSearch核心概念-Cluster ElasticSearch核心概念-shards ElasticSearch核心概念-replicas ElasticSearch核心概念-reco ...
- ElasticSearch 全文检索— ElasticSearch 核心概念
ElasticSearch核心概念-Cluster 1)代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字 ...
- ELK 学习笔记之 elasticsearch基本概念和CRUD
elasticsearch基本概念和CRUD: 基本概念: CRUD: 创建索引: curl -XPUT 'http://192.168.1.151:9200/library/' -d '{" ...
- Elasticsearch入门教程(二):Elasticsearch核心概念
原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...
- 【ElasticSearch】概念
小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 对小史面试情况感兴趣的同学可以观看面试现场系列. 随着央视诗词大会的热播,小史开始对诗词感兴趣 ...
- Elasticsearch基本概念和使用
Elasticsearch基本概念和使用 1.操作索引 1.1.基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的. 对比关系: 索引( ...
- Elasticsearch核心概念
Elasticsearch 核心概念 Cluster 代表一个集群, 集群中有多个节点, 其中一个为主节点, 该节点可以通过选举产生.(主从节点只针对于集群内部) 去中心化: 对于集群外来说无中心节点 ...
- lucene和ElasticSearch基本概念
lucene基本概念 索引(Index) 对应一个倒排表,一个检索的基本单位.在lucene中就对应一个目录. lucene基本概念 段(Segment) 一个索引可以包含多个段,段与段之间是独立的, ...
- Elasticsearch基础概念理解
熟悉ES中的几个关键概念: 节点(Node):一个elasticsearch运行的实例,其实就是一个java进程.一般情况下,一台机器运行在一台机器上. 集群(Cluster): 好几个有相同集群名称 ...
- ElasticSearch 基本概念
Elasticsearch是一个接近实时的搜索平台,就是说从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟,通常是一秒钟 集群 一个集群通常有一个或多个elasticsearch节点组成,给这些 ...
随机推荐
- jquery背景动画插件使用
在网页制作动画特效的时候,有时候想通过背景插入图片,然后通过控制背景显示的位置来实现一些动画效果,这样就不用使用绝对定位控制left和top来实现动画效果!但是jquery本身的动画函数是不支持背景动 ...
- QTP特点有哪些?
QTP特点有哪些? 浏览:77 | 更新:2013-06-19 12:35 QTP是一个侧重于功能的回归自动化测试工具:提供了很多插件,如:.NET的,Java的,SAP的,Terminal Emul ...
- 基于AngularJS的前端云组件最佳实践
AngularJS是google设计和开发的一套前端开发框架,他能帮助开发人员更便捷地进行前端开发.AngularJS是为了克服HTML在构建应用上的不足而设计的,它非常全面且简单易学习,因此Angu ...
- HAProxy+apache实现web服务动静分离
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支 ...
- SQLServer数据库误删数据找回
记一次SQLServer数据库误删数据找回 昨天 同事在本机清理数据库表时,连接到了生产机,误删了二十几张表,幸好是晚上加班的时候删除的,生产机上当时是一天一备份,还原备份是最后的策略,最关键的还是要 ...
- 链表c语言实现
链表(c语言实现)--------------小练习 #include <stdio.h> #include <stdlib.h> #include <string. ...
- 设计适用于SOA的类型
我们经常把一个项目分层去开发,无论是通过三层来面向对象开发还是用WCF或Remoting等面向服务的方式开发,返回值只有一个,如果底层出错了我们一般写日志来记录这些错误,然后分析错误来解决问题,但用户 ...
- Hive中Bucket的应用
网友南京-李先森给了他收集的一些资料,如下: Buckets 对指定列计算 hash,根据 hash 值切分数据,目的是为了并行,每一个 Bucket 对应一个文件.如将 user 列分散至 32 个 ...
- generating permunation
generating permunation——全排列(算法汇总) #include <iostream> #include <string> #include <vec ...
- linux 安装svn,并设置钩子来同步更新
linux安装svn下载 http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz 和 http://subversion.tigr ...