搜索引擎 ElasticSearch 之 步步为营2 【基础概念】
在正式学习 ElasticSearch 之前,首先看一下 ElasticSearch 中的基本概念。
这些概念将在以后的章节中出现多次,所以花15分钟理解一下是非常值得的。
英文好的同学,请直接移步官网:(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_basic_concepts.html)
near realtime(nrt) :
ElasticSearch 是一款“接近实时(nrt)”的搜索平台,为什么说“接近实时”,因为 ElasticSearch 可以在为一个“文档(document)”建立“索引(index)”后,非常短的时间内(这个时间通常在1秒之内)提供搜索支持。
cluster:
“集群(cluster)”是由一个或多个“节点”组合,负责管理你的全部数据,并联合提供建立“索引(index)”和“搜索”服务。
每个“集群”都有一个唯一标识,默认为"elasticsearch"。这是一个非常重要的标识,因为一个“节点(node)”只可以属于一个“集群(cluster)”。
node :
“节点(node)”是“集群”中的一台单独搜索服务器。负责存储数据,参与"集群“中建立索引和搜索任务。
与“集群”类似,每个“节点(node)”都有一个唯一标识,默认是随机的人名(英文名字)。
通过配置 /config/elasticsearch.yml 文件中的 cluster.name 项,我们可以设置这个“节点(node)”属于哪一个“集群(cluster)”。
index:
“索引(index)”是“文档(document)”的集合。一个索引中的“文档(document)”应该相似的特征。
例如,你可以为“用户信息”创建一个“索引(index)”,为“某个产品类别”创建另一个“索引”,当然,也可以为“订单信息”创建一个“索引”......
一个“索引(index)”应当有一个唯一的“名字”(必须全部为小写字母),这个“名字”可用于建立索引,搜索、更新和删除索引中的“文档”。
在一个“节点(node)”中,你可以定义任意数量的“索引(index)”。
type:
“类型(type)”是“索引(index)”中完全由你定义的一个逻辑上的类别/部分。
每个“索引(index)”都可以包含一个或多个“类型(type)”。例如,你准备构建一个博客系统,并使用一个“索引”存储所有数据,在这个“索引”中,可以为“用户信息”定义一个“类型(type)”,为“博客数据”定义另一个“类型(type)”,为“评论数据”定义第三个“类型”......
document:
“文档(document)”是可被建索引的一个基本信息单元。通常采用JSON格式。
需要注意的是,每个文档必须被指定对应的“索引(index)”和“类型(type)”。
shards & replicas:
“分片(shards)”:一个“索引”有可能存储的数据量超过了硬盘的容量,为了解决这个问题,ElasticSearch 支持将一个“索引”细分为多个“分片(shards)”,将其分布到不同的“节点”上,构成分布式搜索。
“副本(replicas)”:“副本(replicas)”提供了高可用性,当某个节点/分片损坏时,可以从“副本”中恢复。“副本”提供了可伸缩性,在搜索量上升时,“副本”可实现并行查询。
每个“索引(index)”都可以被分割为多个“分片”,同样,每个“索引”可以有0或多个“副本”。
“分片”和“副本”的数量可以在每个“索引”创建时指定。但创建完成后,不可以再分配索引的”分片“。默认情况下(至少拥有两个”节点“),ElasticSearch 会分配5个”分片“,每个“分片”会产生1个”副本”。
【搜索引擎 ElasticSearch 之 步步为营 【主目录】】
最新文章
- google-analytics的使用: 解析页面引入代码
- 关于url传参中文乱码问题
- js 循环
- MMTx使用说明
- 【Todo】LR-逻辑回归
- Android yyyymmdd转成yyyy-MM-dd格式
- 百度地图LBS应用开发代码
- 一点一点学ASP.NET系列
- 全连接的BP神经网络
- cf C. Vasya and Robot
- [图形学] Chp9 三维几何变换--栈处理函数与矩阵管理函数的区别
- java中的各种Queue
- RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)
- 【easy】88. Merge Sorted Array 合并两个有序数组
- python 【pandas】账号、银行卡号、身份证号导出文件后以科学计数法显示问题解决
- F#.NET周报 2018第34周-Ionide下载量100万
- 洛谷P1162 填涂颜色【bfs】
- springmvc转换JSON数据
- Android 之Toast
- django-mvvm(django的FormObject)
热门文章
- Appium学习路—脚本篇(启动app)
- nignx软件安装与调试
- Appium移动自动化测试之Eclipse
- form表单里如果只存在一个文本框,enter键提交
- 在子线程中new Handler报错--Can't create handler inside thread that has not called Looper.prepare()
- Unity 之 Shader 对Z深度的偏移
- 细说;(function ($, undefined){ })(jQuery); 的使用
- JAVA第4次作业
- python课程第四周重点记录
- 优化openfire服务器,达到单机20万,集群50万