一、ElasticSearch介绍

  1. 一个采用RESTful API标准的高扩展性的和高可用性的实时性分析的全文搜索工具
  2. 基于Lucene[开源的搜索引擎框架]构建
  3. ElasticSearch是一个面向文档类型的数据库
  4. es为非关系型数据,存储非结构化的数据

二、ElasticSearch概念

1.节点(node):

  1. 一个装有es的服务并且提供故障转移和扩展的服务器,
  2. 单独一个es服务可以存储数据及搜索功能
  3. 在集群中一个节点的名称必须是唯一的
  4. 如果在集群中,通过节点名称进行管理

2.集群(cluster):

  1. 集群就是有多个node组织在一起。共同工作分享整个数据具有负载均衡功能的集群
  2. 集群里的节点协调工作,共享数据。
  3. 集群里通过master节点进行集群管理工作
  4. 集群里通过选举选出一个matser节点
  5. 一个集群里只有一个matser节点
  6. 每一个节点都有成为matser节点的可能

3.索引(Index)

  1. 索引就是一个拥有几分相似特征的文档集合
  2. 相当于mysql里的database

4.文档(Document)

  1. 一个文档是一个可以被索引的基础信息单元
  2. 相当于mysql里的行
  3. 文档用json格式来表示

5.类型(type)

  1. 一个索引中,可以定义一种或者多种数据类型
  2. 一个类型是你的索引的一个逻辑上的分类/分区

6.字段(field)

  1. es里的最小单元 相当于数据的某一列
  2. 类似于json里一个键

7.分片(shards)

  1. es将索引分成若干份 每个部分是一个shards
  2. 每一个shards存在不同的节点上
  3. 一个节点上不能存在两个相同的shards
  4. 每一个文档通过文档id进行hash来确定放在哪一个节点上
  5. 每一个分片都相当于一个独立的Lucene实例

8.副本(replicas)

  1. 索引的一份或者多份拷贝
  2. 容灾作用,防止主分片丢失后,副本分片会作为新的主分片,保证集群的数据完整性
  3. 提供查询性能,query的时候,既可以查询主分片,也可以查询副本分片

三、ElasticSearch和关系型数据库对比

关系型数据库Mysql 非关系型数据库es
数据库 database 索引 Index
表tables 类型 type
数据行row 文档 Documents
数据列Column 字段 Fieid

四、ElasticSearch架构图

1.Gateway

  1. gateway是ES数据存储的格式
  2. 可以使用hdfs,本地,亚马逊的s3等多种存储方式
  3. 存储索引信息,集群信息,mapping, 索引碎片信息,以及transaction logs

2.Distributed Lucene Directory

  1. Lucene框架 es就是基于Lucene框架开发的
  2. Lucene框架服发现等

3.Index Module

  1. 创建索引的模块

4.Search Module

  1. 搜索模块

5.Mapping

  1. 相当于mysql里的schema

6.river

  1. 从外部获取异构数据 来创建索引

7.Discovery

  1. 节点启动后会互相ping 根据在es.yml配置文件里找到对应的端口
  2. 进行开始选举,从各个节点任务的master中选,进行id字典排序,选择第一个
  3. 如果各个节点上都没有认为的master, 那么就从所有节点中选择
  4. 如果就一个节点 那么master就是她自己
  5. ES支持任意数目的集群,通过一个规则,只要所有的节点都遵循同样的规则,得到的信息都是对等的,选出来的主节点肯定是一致的. 但分布式系统的问题就出在信息不对等的情况,这时候很容易出现脑裂(Split-Brain)的问题,大多数解决方案就是设置一个quorum值,要求可用节点必须大于quorum(一般是超过半数节点),才能对外提供服务。而 Elasticsearch 中,这个quorum的配置就是 discovery.zen.minimum_master_nodes

8.Scriptsing

  1. 脚本执行功能 对查询出来的数据进行处理
  2. 支持多种语言

9.3rdplugins

  1. 支持安装第三方插件

10. transport

  1. 是支持的协议类型 默认使用http进行交互

1.ElasticSearch介绍及基本概念的更多相关文章

  1. Elasticsearch介绍,一些概念的笔记

    Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 什么是搜索? 如果用数据库做搜索会怎么样? 什么是全文检索和Lucene? 什么是Elasticsearch? Elasti ...

  2. Elasticsearch核心技术(2)--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)

    Elasticsearch核心技术(2)--- 基本概念 这篇博客讲到基本概念包括: Index.Type.Document.集群,节点,分片及副本,倒排索引. 一.Index.Type.Docume ...

  3. Elasticsearch介绍和安装与使用

    转载:https://blog.csdn.net/weixin_42633131/article/details/82902812 1.Elasticsearch介绍和安装 1.1.简介1.1.1.E ...

  4. C#多线程之旅(1)——介绍和基本概念

    原文地址:C#多线程之旅(1)——介绍和基本概念 C#多线程之旅目录: C#多线程之旅(1)——介绍和基本概念 C#多线程之旅(2)——创建和开始线程 C#多线程之旅(3)——线程池 C#多线程之旅( ...

  5. elasticsearch 介绍

    一.什么是elasticsearch Elasticsearch是一个基于Lucene的高度可伸缩的分布式的开源全文搜索和分析引擎.它允许您快速.实时地存储.搜索和分析大量数据.它通常用作底层引擎/技 ...

  6. elasticsearch介绍,安装,安装错误解决及相应插件安装

    一.elasticsearch介绍 1.简介(使用的是nosql,更新比mongodb慢): ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎, ...

  7. 【分布式搜索引擎】Elasticsearch中的基本概念

    一.Elasticsearch中的基本概念 以下概念基于这个例子:存储员工数据,每个文档代表一个员工 1)索引(index)  在Elasticsearch中存储数据的行为就叫做索引(indexing ...

  8. 【SpringBoot】搜索框架ElasticSearch介绍和整合SpringBoot

    ========================12章 搜索框架ElasticSearch介绍和整合SpringBoot ============================= 加入小D课堂技术交 ...

  9. TensorFlow入门,基本介绍,基本概念,计算图,pip安装,helloworld示例,实现简单的神经网络

    TensorFlow入门,基本介绍,基本概念,计算图,pip安装,helloworld示例,实现简单的神经网络

随机推荐

  1. NHibernate教程(14)--使用视图

    本节内容 引入 1.持久化类 2.映射文件 3.测试 结语 引入 在数据库操作中,我们除了对表操作,还有视图.存储过程等操作,这一篇和下篇来学习这些内容.这篇我们来学习如何在NHibernate中使用 ...

  2. [转载]Python实现浏览器自动化操作

    原文地址:Python实现浏览器自动化操作作者:rayment   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没 ...

  3. Python 异常处理

    Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. 断言 ...

  4. 201521123089 《Java程序设计》第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...

  5. 201521123047 《Java学习笔记》第二周学习总结

    1. 本周学习总结 -知道并了解到浮点数的误差关系,懂得运java.math.BigDecimal来进行浮点数的精确计算 -对于"="与"=="的区分 -字符串 ...

  6. 201521123049 《JAVA程序设计》 第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  7. 201521123008 《Java程序设计》 第九周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避 ...

  8. java web SSO单点登录

    第一篇: Web应用系统的演化总是从简单到复杂,从单功能到多功能模块再到多子系统方向发展. .当前的大中型Web互联网应用基本都是多系统组成的应用群,由多个web系统协同为用户提供服务. 多系统应用群 ...

  9. 自动化测试之 seleniumIDE,Selenium1,selenium2和testNG入门

    由于前期三个月公司的项目一直在改需求阶段,一直是手动测试,现在项目雏形以及基本页面功能都确定下来,为了不让自己陷入天天测同一功能的无限循环中,故开始自动化测试的学习之路,也为自己以后的发展铺铺路. 一 ...

  10. Markdown编辑器 简单使用

    [TOC] 一号标题 二号标题 三号标题 1 列表 2 列表 3 列表 引用 引用就是实在前面加上> 分割线 分割线就是三个* 目录 目录是[TOC],加在一个文章的最前面 粗体 和斜体 一个之 ...