1.ElasticSearch介绍及基本概念
一、ElasticSearch介绍
- 一个采用RESTful API标准的高扩展性的和高可用性的实时性分析的全文搜索工具
- 基于Lucene[开源的搜索引擎框架]构建
- ElasticSearch是一个面向文档类型的数据库
- es为非关系型数据,存储非结构化的数据
二、ElasticSearch概念
1.节点(node):
- 一个装有es的服务并且提供故障转移和扩展的服务器,
- 单独一个es服务可以存储数据及搜索功能
- 在集群中一个节点的名称必须是唯一的
- 如果在集群中,通过节点名称进行管理
2.集群(cluster):
- 集群就是有多个node组织在一起。共同工作分享整个数据具有负载均衡功能的集群
- 集群里的节点协调工作,共享数据。
- 集群里通过master节点进行集群管理工作
- 集群里通过选举选出一个matser节点
- 一个集群里只有一个matser节点
- 每一个节点都有成为matser节点的可能
3.索引(Index)
- 索引就是一个拥有几分相似特征的文档集合
- 相当于mysql里的database
4.文档(Document)
- 一个文档是一个可以被索引的基础信息单元
- 相当于mysql里的行
- 文档用json格式来表示
5.类型(type)
- 一个索引中,可以定义一种或者多种数据类型
- 一个类型是你的索引的一个逻辑上的分类/分区
6.字段(field)
- es里的最小单元 相当于数据的某一列
- 类似于json里一个键
7.分片(shards)
- es将索引分成若干份 每个部分是一个shards
- 每一个shards存在不同的节点上
- 一个节点上不能存在两个相同的shards
- 每一个文档通过文档id进行hash来确定放在哪一个节点上
- 每一个分片都相当于一个独立的Lucene实例
8.副本(replicas)
- 索引的一份或者多份拷贝
- 容灾作用,防止主分片丢失后,副本分片会作为新的主分片,保证集群的数据完整性
- 提供查询性能,query的时候,既可以查询主分片,也可以查询副本分片
三、ElasticSearch和关系型数据库对比
| 关系型数据库Mysql | 非关系型数据库es |
|---|---|
| 数据库 database | 索引 Index |
| 表tables | 类型 type |
| 数据行row | 文档 Documents |
| 数据列Column | 字段 Fieid |
四、ElasticSearch架构图

1.Gateway
- gateway是ES数据存储的格式
- 可以使用hdfs,本地,亚马逊的s3等多种存储方式
- 存储索引信息,集群信息,mapping, 索引碎片信息,以及transaction logs
2.Distributed Lucene Directory
- Lucene框架 es就是基于Lucene框架开发的
- Lucene框架服发现等
3.Index Module
- 创建索引的模块
4.Search Module
- 搜索模块
5.Mapping
- 相当于mysql里的schema
6.river
- 从外部获取异构数据 来创建索引
7.Discovery
- 节点启动后会互相ping 根据在es.yml配置文件里找到对应的端口
- 进行开始选举,从各个节点任务的master中选,进行id字典排序,选择第一个
- 如果各个节点上都没有认为的master, 那么就从所有节点中选择
- 如果就一个节点 那么master就是她自己
- ES支持任意数目的集群,通过一个规则,只要所有的节点都遵循同样的规则,得到的信息都是对等的,选出来的主节点肯定是一致的. 但分布式系统的问题就出在信息不对等的情况,这时候很容易出现脑裂(Split-Brain)的问题,大多数解决方案就是设置一个quorum值,要求可用节点必须大于quorum(一般是超过半数节点),才能对外提供服务。而 Elasticsearch 中,这个quorum的配置就是 discovery.zen.minimum_master_nodes
8.Scriptsing
- 脚本执行功能 对查询出来的数据进行处理
- 支持多种语言
9.3rdplugins
- 支持安装第三方插件
10. transport
- 是支持的协议类型 默认使用http进行交互
1.ElasticSearch介绍及基本概念的更多相关文章
- Elasticsearch介绍,一些概念的笔记
Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 什么是搜索? 如果用数据库做搜索会怎么样? 什么是全文检索和Lucene? 什么是Elasticsearch? Elasti ...
- Elasticsearch核心技术(2)--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)
Elasticsearch核心技术(2)--- 基本概念 这篇博客讲到基本概念包括: Index.Type.Document.集群,节点,分片及副本,倒排索引. 一.Index.Type.Docume ...
- Elasticsearch介绍和安装与使用
转载:https://blog.csdn.net/weixin_42633131/article/details/82902812 1.Elasticsearch介绍和安装 1.1.简介1.1.1.E ...
- C#多线程之旅(1)——介绍和基本概念
原文地址:C#多线程之旅(1)——介绍和基本概念 C#多线程之旅目录: C#多线程之旅(1)——介绍和基本概念 C#多线程之旅(2)——创建和开始线程 C#多线程之旅(3)——线程池 C#多线程之旅( ...
- elasticsearch 介绍
一.什么是elasticsearch Elasticsearch是一个基于Lucene的高度可伸缩的分布式的开源全文搜索和分析引擎.它允许您快速.实时地存储.搜索和分析大量数据.它通常用作底层引擎/技 ...
- elasticsearch介绍,安装,安装错误解决及相应插件安装
一.elasticsearch介绍 1.简介(使用的是nosql,更新比mongodb慢): ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎, ...
- 【分布式搜索引擎】Elasticsearch中的基本概念
一.Elasticsearch中的基本概念 以下概念基于这个例子:存储员工数据,每个文档代表一个员工 1)索引(index) 在Elasticsearch中存储数据的行为就叫做索引(indexing ...
- 【SpringBoot】搜索框架ElasticSearch介绍和整合SpringBoot
========================12章 搜索框架ElasticSearch介绍和整合SpringBoot ============================= 加入小D课堂技术交 ...
- TensorFlow入门,基本介绍,基本概念,计算图,pip安装,helloworld示例,实现简单的神经网络
TensorFlow入门,基本介绍,基本概念,计算图,pip安装,helloworld示例,实现简单的神经网络
随机推荐
- Linux下安装oracle jdk
从官网下载对应的 .tar.gz压缩文件. 在linux某个目录下解压 到根目录下的etc文件夹下编辑profile文件,在文件的末尾加上 JAVA_HOME=/usr/local/jdk1.8.0_ ...
- 201521123040《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 我们每次删除元 ...
- 《Java程序设计》第5周学习总结
1. 本章学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 1. 代码阅读:Child压缩包内源代码 1.1 com.par ...
- 201521123065《java程序设计》第12周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 1.流的划分:输入流:字节流(InputStream).字符流(reader): 输出流:字节流(Output ...
- 201521123018 《Java程序设计》第11周学习总结
1. 本章学习总结 你对于本章知识的学习总结 2. 书面作业 一.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问, ...
- 201521123068 《java程序设计》 第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...
- Bootstrap栅格系统用法--Bootstrap基础
1.栅格系统实现布局的原理 1)Bootstrap把屏幕的宽度拆分成12格(列),每一格像素的多少由设备屏幕分辨率决定,我们在开发项目的过程中不需要去指定像素或者百分比. 2)不同范围的分辨率对应不同 ...
- 数据结构与算法->树->2-3-4树的查找,添加,删除(Java)
代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 目录 一. 2-3-4树的定义 二. 2-3-4树数据结构定义 三. 2-3-4树的可以得到 ...
- Scrapy爬虫框架解析
Scrapy框架解析 Scrapy框架大致包括以下几个组件:Scrapy Engine.Spiders.Scheduler.Item Pipeline.Downloader: 组件 Scrapy En ...
- SpringMVC第三篇【收集参数、字符串转日期、结果重定向、返回JSON】
业务方法收集参数 我们在Struts2中收集web端带过来的参数是在控制器中定义成员变量,该成员变量的名字与web端带过来的名称是要一致的-并且,给出该成员变量的set方法,那么Struts2的拦截器 ...