Elasticsearch基础概念有哪些,能统一扫盲吗?
摘要:公众号首发、欢迎关注 一、导读 本篇是白日梦的第三篇ES笔记,前面已经跟大家分享过两篇ES笔记了,分别是: ES基础篇--快速上手ES ES进阶篇--50个检索、聚合案例 其实这个专题相对来说质量还是比较不错的,看过前面两篇文章之后基本上大
目录公众号首发、欢迎关注一、导读二、彩蛋福利:账号借用三、ES的Index、Shard及扩容机制四、ES支持的核心数据类型4.1、数字类型4.2、日期类型4.3、boolean类型4.4、二进制类型4.5、范围4.6、复杂数据类型4.7、Geo-type五、精确匹配与全文检索5.1、精确匹配:exact value5.2、全文检索:full text六、倒排索引 & 正排索引6.1、倒排索引 inverted index6.2、正排索引 doc value6.3、禁用doc value七、简述相关性评分八、分词器8.1、什么是分词器?8.2、分词器的组成8.3、修改Index使用的分词器九、mapping9.1、认识mapping9.2、查看mapping9.3、dynamic mapping (动态mapping)9.4、定制dynamic mapping 策略定制type field9.5、mapping复杂数据类型在底层的存储格式9.6、ES7中废弃了type的概念9.7、认识一些mate-field(元数据字段)9.8、copy_to9.9、Arrays 和 Multi-field十、图解: master的选举、容错以及数据的恢复。十一、ES如何解决并发冲突十二、路由原理十三、写一致性及原理
公众号首发、欢迎关注
一、导读
本篇是白日梦的第三篇ES笔记,前面已经跟大家分享过两篇ES笔记了,分别是:
ES基础篇--快速上手ES
ES进阶篇--50个检索、聚合案例
其实这个专题相对来说质量还是比较不错的,看过前面两篇文章之后基本上大家可以上手使用ES了,包括对一些花里花哨的查询相关的写法也有所了解。然后这一篇文章会和大家调过头来重新巩固一下基础概念上的扫盲。
二、彩蛋福利:账号借用
三、ES的Index、Shard及扩容机制
首先你看下这个表格(ES6):
Elasticsearch
关系型数据库
Document
行
type(ES7中被取消)
表
index
Database
在ES中的Index的地位相当于是MySQL中的database。所以你让ES帮你存储数据你总得先创建一个Index吧,如果你手动的定制创建Index,你还可以为Index指定shard。
那什么是shard呢?下文马上说。
下面是对Index操作的Case:
# 创建索引
PUT my_index
{
# 设置index的shard信息
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
},
# 设置index中各个字段的类型,属性(下文细讲)
"mapping":{
...
}
}
# 修改索引
PUT /my_index/_settings
{
# 只能改number_of_replicas,不能改number_of_shards
"number_of_replicas":3
}
# 删除索引
DELETE /my_index
DELETE /my_index1,my_index2
DELETE /my_*
DELETE /_all # 删掉所有索引
# 如果不想让ES可以一下子删除所有索引,可以通过配置文件设置
elasticsearch.yml
action.destructive_requires_name:true
shard分为primary shard和replica shard ,其中的primary shard可以接受读/写请求,replica shard可以接受读请求,起到一个负载的作用。默认情况下我创建的索引都有: number_of_shards = 5 和number_of_replicas = 1。表示一共有五个primary shard,并且每个primary 都有一个副本。也就是 5+5*1 =10个shard。
但是当你启动单台ES实例时,架构其实是下面这样:
你会发现,其实系统中就有5个shard。不存在上面计算的10个shard。原因是因为ES要求Primary Shard 和它的备份 replica shard不能同时存在于一个Node上。所以你单个Node启动后,就只有5个primary shard。并且这时你去看集群的状态,会发现整个集群处于yellow状态,表示集群整体可用,但是存在replica shard不可用的情况。
