[ES] 基础概念

Elasticsearch是基于Luence实现的一款搜索引擎,支持分布式和集群,并且搜索近实时,主要用于搜索和数据分析

索引 index

  • 可以理解为数据库中的database,存储的是实际数据,因为ES是以Luence为基础的,Luence索引是一种倒排索引结构,不同于数据库中的表面向行数据,索引是面向词而非面向文档,如下图是一个简单的存储结构:

  • 一个索引由多个段组成,段的特性:写一次读多次,删除段中的文档本质并不能立即被删除,只有段合并的时候,Luence才会决定将其删除
  • 索引命名必须是小写

主分片 primary shard

  • 一个索引可以分为一个或者多个分片,存放在一台或者多台服务器上,每个分片都是独立的索引,提高了水平扩展能力,一旦创建好索引,分片数量无法更改

副本分片 replica shard

  • 每个主分片可以拥有多个副本分片,每个副本分片都是主分片的完整拷贝,副本提高了容错率和查询吞吐量,副本数量可以在创建好索引后更改

类型 type

  • 索引的逻辑分区,和文档ID一起用于标识文档

文档 document

  • 相当于数据库中的行数据,存储在es中的主要实体,es为每个文档自动生成唯一标识符object_id

字段 field

  • 多个字段组成一个文档

注意:一个索引的所有文档类型中对于具有相同名称的字段必须是同一种数据类型,与SQL SERVER不同,同一数据库中不同表中相同名称的列数据类型可以不一样

词 term

  • 一个搜索单元

标记 token

  • 词的文本、开始和结束的偏移量以及类型组成

何为分析?

  • 一个文档如何转换为倒排索引,一个查询文本如何转化为可被搜索的词?这个转化过程就叫分析

负责分析的是谁?

  • 分析器:由一个分词器和零个或多个标记过滤器和零个或多个字符映射器组成

分析的过程

  • 首先,字符映射器对未经分析的文本进行处理,比如去除HTML标签
  • 其次,分词器把文本分割成多个标记
  • 最后,多个标记过滤器按顺序逐个对标记进行处理

映射Mapping

  • 针对字段制定一些规则,比如某个字段是什么类型,是否需要经过分析存储等

节点 node

  • 形成集群的每个ES服务器就是一个节点

集群

  • 多个具有同名cluster name的ES节点构成集群

分布式

  • 一个索引可以拆分成多个分片存储在多个节点上

ES核心类型

  • string:字符串
  • byte:字节数值
  • short:短整型数值
  • integer:整型数值
  • long:长整型数值
  • float:浮动型数值
  • double:双精度数值
  • boolean:布尔类型
  • binary:二进制类型Base64
  • date:日期 默认yyyy-MM-dd
  • ip:ip地址类型
时间: 2024-10-20 17:27:44

[ES] 基础概念的相关文章

(1)Opengl ES 基础概念

Opengl ES基础系列文章是音视频学习的图形图像部分,旨在通过这部分学习,能够把Opengl ES和视频结合在一起,最终形成一个完整的知识体系. 这一节我们介绍Opengl ES的几个基本东西,为后面的学习有个整体的概念,而且只做最简单的概念介绍,不会长篇大论(对于初学者会搞得晕头转向),大家也不必要去追根究底,只要记住有这么个东西就行,通过后面的学习,然后再回过头来看,一定会有顿悟的感觉.这节主要介绍如下几个知识点. Opengl ES渲染管线 可编程着色器 着色器语言GLSL介绍 Ope

es 基础概念总结 —— Request Body Search

一.query DSL 叶子查询 于特定字段查询特定值.如 match, term 或 range 查询 复合查询 包装其它叶子查询或复合查询.如使用 bool or dis_max 混合多个查询 分离最大化查询 dis_max 分离最大化查询(Disjunction Max Query)指的是: 将任何与任一查询匹配的文档作为结果返回,但只将最佳匹配的评分作为查询的评分结果返回,而不是将所有匹配结果的得分相加. 示例: { "query": { "dis_max"

Elasticsearch技术解析与实战(一)基础概念及环境搭建

基础概念 Elasticsearch是一个近实时的系统,从你写入数据到数据可以被检索到,一般会有1秒钟的延时.Elasticsearch是基于Lucene的,Lucene的读写是两个分开的句柄,往写句柄写入的数据刷新之后,读句柄重新打开,这才能读到新写入的数据. 名词解释: Cluster:集群. Index:索引,Index相当于关系型数据库的DataBase. Type:类型,这是索引下的逻辑划分,一般把有共性的文档放到一个类型里面,相当于关系型数据库的table. Document:文档,

cocos2d-x-3.6 引擎基础概念

先讲一下引擎里面几个重要的基础概念:导演,节点,场景,层,精灵.当然实际开发者会碰到很多其他概念,不过不要紧,有了这些基础概念,后面自己学习起来就容易多了. 节点(Node)是cocos2d-x里面最基础的一个类,游戏中几乎所有的类都派生自这个类,换句话说,游戏里面几乎所有的游戏对象都是一个节点.那么如何管理这些游戏对象呢,cocos2d-x引擎采用节点树来管理所有的游戏对象.看看一个游戏里面各元素的关系图.这个不是类图,可以看成是组织关系图. 一个游戏由很多个游戏场景组成,就像一个电影,每段故

关系型数据库常用基础概念知识归纳

声明:我的文章都是只挑主要的写,次要细节太多,归纳就没意义了,同时归纳主要是给自己看的, 而且基本都是凭自己的一些记忆和理解即时写的.不一定对和全(但大多是一些需要理解的概念),请各位看管见谅! 数据库设计篇 1.范式 A.1范式,原子性,即列不可分 B.2范式,完全依赖,即有个主键唯一区分 C.3范式,不能传递依赖,即表中不能还有其他表的非主键信息 2.模型 A.概念模型,即ER图等 B.逻辑模型,即建逻辑表 C.物理模型,即生成物理表 事务 1.四大特性, A.原子,要么..要么.. B.隔

分布式学习——基础概念篇

概述 最近这段时间一直在看分布式有关的东西,但是关于分布式自己还是不能很好的理解,所以本文对分布式基础概念进行下学习. 分布式处理 首先先了解一下分布式处理,分布式处理和集中式处理正好是相反的的体系架构,集中传输集中到式处理顾名思义就是将所有的信息都一个统一的信息中心进行处理:分布式处理就是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机利用通信网络连接起来,让各个计算机各自承担同一个工作任务的不同部分,在控制中心的管理下,同时运行,共同完成同一个工作任务. 提到分布式处理就不能不提到

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];