文章目录
ElasticSearch概念
索引(index)
类似的数据放在一个索引,非类似的数据放不同索引, 一个索引也可以理解成一个关系型数据库。
映射(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:嵌套类型,不支持数组。
文档(document)
一个document相当于关系型数据库中的⼀行记录。
字段(field)
相当于关系型数据库表的字段
集群(cluster)
集群由一个或多个节点组成,⼀个集群有⼀个默认名称"elasticsearch"。
节点(node)
集群的节点,⼀台机器或者一个进程
分片和副本(shard)
副本是分片的副本。分片有**主分片(primary Shard)和副本分片(replica Shard)**之分。
一个Index数据在物理上被分布在多个主分片中,每个主分片只存放部分数据。
每个主分片可以有多个副本,叫副本分片,是主分片的复制。
ElasticSearch7.0重大改进
1、彻底废弃多type支持,包括api层面,之前版本可在一个索引库下创建多个type。
2、彻底废弃_all字段支持,为提升性能默认不再支持全文