当前位置: 代码迷 >> 综合 >> Elasticsearch7.X学习(1)es目录结构和核心概念
  详细解决方案

Elasticsearch7.X学习(1)es目录结构和核心概念

热度:68   发布时间:2023-12-27 01:12:02.0

一.官网地址

   https://www.elastic.co/cn/

二.ES的目录结构

三.ES的核心概念

索引(index)
 
类似的数据放在一个索引,非类似的数据放不同索引, 一个索引也可以?解成一个关系型数据库。

类型(type)
   代表document属于index中的哪个类别(type)
   也有一种说法一种type就像是数据库一类表,比如dept表,user表。
注意ES每个大版本之间区别很大:
   
 ES 5.x中?一个index可以有多种type。
     ES 6.x中?一个index只能有?一种type。
     ES 7.x以后已经移除type这个概念。

映射(mapping)
    mapping定义?每个字段的类型等信息。相当于关系型数据库中的表结构。

    常用数据类型:text、keyword、number、array、range、boolean、date、geo_point、ip、nested、object

 text:默认会进行分词,支持模糊查询(5.x之后版本string类型已废弃,请大家使用text)。keyword:不进行分词;keyword类型默认开启doc_values来加速聚合排序操作,占用了大量磁盘io 如非必须可以禁用doc_values。number:如果只有过滤场景 用不到range查询的话,使用keyword性能更佳,另外数字类型的doc_values比字符串更容易压缩。array:es不需要显示定义数组类型,只需要在插入数据时用'[]'表示即可,'[]'中的元素类型需保持一致。range:对数据的范围进行索引;目前支持 number range、date range 、ip range。boolean: 只接受true、false 也可以是字符串类型的“true”、“false”date:支持毫秒、根据指定的format解析对应的日期格式,内部以long类型存储。geo_point:存储经纬度数据对。ip:将ip数据存储在这种数据类型中,方便后期对ip字段的模糊与范围查询。nested:嵌套类型,一种特殊的object类型,存储object数组,可检索内部子项。object:嵌套类型,不支持数组。

es7.0新增

数据类型:alias、date_nanos、features、vector

  1. alias:并不实际存在,而是对已有字段的一种别名映射,搜索该字段与搜索实际字段返回的内容没有本质的区
  2. date_nanos:另一种时间类型,可精确到纳秒,用法类似date。
  3. features:用来存储特征向量,数据不能为0和负数,查询时只能使用rank_feature
  4. query,该字段主要为支持后续机器学习相关功能做准备。
  5. vector:存储特征数组,支持稀疏与稠密向量存储,该字段主要为支持后续机器学习相关功能做准备

文档(document)
    一个document相当于关系型数据库中的??记录。
字段(field)
    相当于关系型数据库表的字段
集群(cluster)
    集群由一个或多个节点组成,?个集群有?个默认名称"elasticsearch"。
节点(node)
    集群的节点,?台机?或者一个进程
分片和副本(shard)
    副本是分片的副本。分片有主分片(primary Shard)和副本分片(replica Shard)之分。
一个Index数据在物理上被分布在多个主分片中,每个主分片只存放部分数据。
每个主分片可以有多个副本,叫副本分片,是主分片的复制。

四.elasticsearch7.0有哪些重大改进

1、彻底废弃多type支持,包括api层面,之前版本可在一个索引库下创建多个type。2、彻底废弃_all字段支持,为提升性能默认不再支持全文检索,即7.0之后版本进行该项配置会报错。3、新增应用程序主动监测功能,搭配对应的kibana版本,用户可监测应用服务的健康状态,并在出现问题后及时发出通知。4、取消query结果中hits count的支持(聚合查询除外),使得查询性能大幅提升(3x-7x faster)。这意味着,每次查询后将不能得到精确的结果集数量。5、新增intervals query ,用户可设置多字符串在文档中出现的先后顺序进行检索。6、新增script_core ,通过此操作用户可以精确控制返回结果的score分值。7、优化集群协调子系统,缩减配置项提升稳定性。8、新增 alias、date_nanos、features、vector等数据类型。9、7.0自带java环境,所以我们在安装es时不再需要单独下载和配置java_home。10、7.0将不会再有OOM的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超出单机处理的最大内存限制时会被截断