搜索引擎 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 之 步步为营 【主目录】】
搜索引擎 ElasticSearch 之 步步为营2 【基础概念】的更多相关文章
- 搜索引擎 ElasticSearch 之 步步为营1 【环境搭建&初识ElasticSearch】
1.下载ElasticSearch a.下载Java环境JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloa ...
- 搜索引擎 ElasticSearch 之 步步为营 【主目录】
ElasticSearch 是一款著名的分布式搜索引擎框架,采用Java编写.具有搜索速度快,实时搜索等特色. 以下为官网对ElasticSearch的介绍: Elasticsearch 是一款高可伸 ...
- 【Elasticsearch学习】之基础概念
Elasticsearch是一个近实时的分布式搜索引起,其底层基于开源全文搜索库Lucene:Elasticsearch对Lucene进行分装,对外提供REST API 的操作接口.基于 ES,可以快 ...
- [Elasticsearch] 全文搜索 (一) 基础概念和match查询
全文搜索(Full Text Search) 现在我们已经讨论了搜索结构化数据的一些简单用例,是时候开始探索全文搜索了 - 如何在全文字段中搜索来找到最相关的文档. 对于全文搜索而言,最重要的两个方面 ...
- 快速掌握分布式搜索引擎ElasticSearch(一)
前言 由于最近在项目中接触使用到了ElasticSearch,从本篇博客开始将给大家分享这款风靡全球的产品.将涉及到ElasticSearch的安装.基础概念.基本用法.高级查询.中文分词器.与Spr ...
- Elasticsearch教程之基础概念
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味 ...
- 3.高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建
高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建 如果大家看了我的上一篇<2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离>文章,如果能很好的 ...
- 白日梦的ES笔记三:万字长文 Elasticsearch基础概念统一扫盲
目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4. ...
- Elasticserach学习笔记-01基础概念
本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/e ...
随机推荐
- C#连接Sql Serve数据库及增,删,改操作
一:连接. string sqlconn = "server=主机名;database=数据名;integrated security=true" //integrated sec ...
- quartz学习
quartz是一个作业调度框架,用于指定工作(作业)在指定时间执行——定时工作. quartz的核心接口有: Scheduler接口:Scheduler是job的执行对象,用于工作的执行. Job接口 ...
- C++STL学习笔记_(1)deque双端数组知识
#include<iostream> using namespace std; #include "deque" #include "algorithm&qu ...
- C语言调用curl库抓取网页图片(转)
思路是先用curl抓取网页源码,然后以关键字寻找出图片网址. 范例: #include <stdio.h> #include <stdlib.h> #include < ...
- 利用 PortableBasemapServer 发布地图服务
前段时间需要给自己的C/S系统加一个地图,但是没有数据,于是就想到了使用网上的切片地图,但是C/S系统又不能联网,于是就想本地发布切片服务来使用. 本来想用ArcGIS Server来发布从网上下载的 ...
- Android 获取当前时间问题1
获取的写法如下: Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int year = c.get(Calendar.YEAR); int mon ...
- Fiddler抓包之IOS
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的数据(指cookie,html,j ...
- js自定义对象
一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...
- android webview开发问题及优化汇总
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...
- ReferenceQueue<T>随笔
参考资料: ReferenceQueue食用手册 java引用食用手册 ReferenceQueue源代码里面很好的展示了java队列的实现思路, 以及多线程观察者的实现思路 多线程观察者实现思路: ...