elasticsearch系列(一) 术语
elasticsearch(以下简称es)是一款开源的搜索引擎,基于apach lucene。最近在做nlp的时候顺便研究一下。
下面是官方列举的术语解释
Near Realtime
接近实时的查询,通常情况下,延迟在1s以内
Cluster
一个集群由1个或者多个节点组成,这些节点提供整个数据和索引,性能来源于每个节点。一个集群有一个唯一的名字,默认为“elasticsearch”,
Node
一个node启动的时候分配一个唯一的id(UUID),自动会加入名为“elasticsearch”的cluster,前提是网络没有问题,一个node只能加入一个集群。
Index
一个index是一些有相似特征的documents集合,比如有一个顾客类的index,一个生产类的index,有一个订单类的index。index必须都是小写的
Type
一个index可以定义出多个type,一个type是一个逻辑的类别或者分区,并且其语义完全取决于自己,一般而言一个type定义了包含多个fields的documents。
Document
一个document是可以被索引信息的基础单元,尽管一个document在物理上是属于index的,但事实上,一个document必须被索引或者分配到一个index里的type。
Shard&Replicas
一个index可以存储大量的数据,并且超过单节点的限制。例如,单个index可能含有几十亿个documents,占据了1TB的磁盘空间,这就可能导致单个node可能没有这么大的空间,或者在查询的时候会很慢。
为了解决这个问题,es给出了shard的概念,将一个index拆分成多个部分。创建的index就可以申明shard的数量,每个shard都是拥有完整和独立的index。
Sharding的两个重要点:
1.shard允许你对大量数据做横向切分
2.shard允许通过多个shards分布式并发的操作,从而提升性能和吞吐量
Shard是如何分布的以及多个它们的documents是如何被合并都由es管理,这些对使用者都是透明的。
关于容错,es通过replica来解决,replica是index下的shard的副本。
Replicaing的两个重要点:
1.提供了HA。需要提醒的是,replica和shard不应该在同一个node
2.搜索可以在所有的replica并发处理
你可以在创建的时候设置index的shard和replica数量,但是之后,你只能更改replica的数量,而不能更改shard的数量.
Es的默认配置为,5个shards和1个replica,如果你的cluster有两个及以上的node,则一共有10个shards(5 primary shards,5 replica shards)
其他
Es的一个shard就是lucene的index
总结
逻辑上,index、type、documents作为namespace的存在,可以充分表现Restful风格的接口
物理上,index可以看做是数据库中的库,通过shard(类似partition)做HA和高并发
参考资料
//es官方介绍
https://www.elastic.co/guide/en/elasticsearch/reference/5.2/_basic_concepts.html
elasticsearch系列(一) 术语的更多相关文章
- elasticsearch系列(三)分表分库
		首先ES没有库和表的概念,只有index,type,document(详细术语可以看ES的系列一 http://www.cnblogs.com/ulysses-you/p/6736926.html), ... 
- elasticsearch系列(五)score
		概述 score在ES中有着很重要的作用,有了它才有了rank,是验证文档相关性的关键数据,score越大代表匹配到的文档相关性越大 官方解释 查询的时候可以用explain来展示score的计算过程 ... 
- Elasticsearch系列(1):认识Elasticsearch
		官方定义 Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据. 它被用作全文检索.结构化搜索.分析以及这三个功能的组合. Elasti ... 
- Elasticsearch 系列文章汇总(持续更新...)
		系列文章列表 Query DSL Query DSL 概要,MatchAllQuery,全文查询简述 Match Query Match Phrase Query 和 Match Phrase Pre ... 
- Elasticsearch系列(五)----JAVA客户端之TransportClient操作详解
		Elasticsearch JAVA操作有三种客户端: 1.TransportClient 2.JestClient 3.RestClient 还有种是2.3中有的NodeClient,在5.5.1中 ... 
- elasticsearch系列(三)库表理解
		首先ES没有库和表的概念,只有index,type,document(详细术语可以看ES的系列一 http://www.cnblogs.com/ulysses-you/p/6736926.html), ... 
- elasticsearch系列(四)部署
		本文采用tar包的方式部署es 准备jdk8的环境 5.4.0的es依赖jdk8及以上版本 下载linux版的jdk jdk-8u121-linux-x64.tar.gz tar -zvxf jdk- ... 
- elasticsearch系列一:elasticsearch(ES简介、安装&配置、集成Ikanalyzer)
		一.ES简介 1. ES是什么? Elasticsearch 是一个开源的搜索引擎,建立在全文搜索引擎库 Apache Lucene 基础之上 用 Java 编写的,它的内部使用 Lucene 做索引 ... 
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
		一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ... 
随机推荐
- 1342: [Baltic2007]Sound静音问题
			1342: [Baltic2007]Sound静音问题 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 710 Solved: 307[Submit][ ... 
- CoreAnimation 核心动画
			- (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ... 
- IOS本地日志记录方案
			我们在项目中日志记录这块也算是比较重要的,有时候用户程序出什么问题,光靠服务器的日志还不能准确的找到问题. 现在一般记录日志有几种方式: 1.使用第三方工具来记录日志,如腾讯的Bugly,它是只把程序 ... 
- Java 集合的理解(持续更新......)
			一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ... 
- Jaro-Winkler Distance
			发现commons-lang 中有实现: StringUtils.class public static double getJaroWinklerDistance(final CharSequenc ... 
- 关于Tarjan(2)
			Tarjan有第二个神奇的用法,求强连通分量!!!!!!!!!!!!!!!!!!! 同样利用了dfn:dfs序,low:能回到的最早祖先的dfn: 废话少说 上板子 #include<iostr ... 
- 期待微软平台即服务技术Service Fabric 开源
			微软的Azure Service Fabric的官方博客在3.24日发布了一篇博客 Service Fabric .NET SDK goes open source ,介绍了社区呼声最高的Servic ... 
- Java变量和对象的作用域
			大多数程序设计语言都提供了"作用域"(Scope)的概念. 对于在作用域里定义的名字,作用域同时决定了它的"可见性"以及"存在时间".在C, ... 
- C#封装MongoDB工具类库
			什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩 ... 
- 分布式文件管理系统_FastDFS集群
			简单介绍 1,client storage tracker的关系 先用一幅图来解释用户如何访问一个通过DFS管理的文件 一般来说,一台服务器只有一个storage server,多个storage s ... 
