本篇内容主要讲解“elasticsearch的基础知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“elasticsearch的基础知识有哪些”吧!
定义
Cluster: 集群,由一个或多个节点组成
Node: 单个 Elastic 实例
Index: 索引,复数是 Indices,是一组文档的集合
Shard: 分片,es 是个分布式的搜索引擎,索引通常都会被分解成不同部分,而这些分布在不同节点上的数据就是分片,
replica: 副本,ES 默认为每个索引创建 5 个主分片,并分别为其创建一个副本分片
Type: 类型,ES7 已经弃用,默认一个索引只有一个默认 Type,即_doc
Document: 文档,json 类型
Index 对应 Database
Type 对应 Table
Document 对应 表里每一条记录
ES7.0 Type 被废弃
与 Mysql 类比
ES 实例 对应 Database
Index 对应 Table
Document 对应 表里的每一条记录
文档唯一性
一般讲 index + type + 文档 _id
在一个实例或集群全局唯一, 实际上是 index + type + 分片标识 + 文档 _id
数据类型
见官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/7.2/mapping-types.html
字符串类型
ES5.0 之前,字符串是 string
从 ES5.0 起,string 类型被废弃,引入 keyword, text 两种类型
keyword 不支持全文搜索,只能使用精准匹配,最长长度 32766 字节(utf8 中,英文字母是 1 字节,中文是 3 字节,表情符合是 4 字节)
text 支持全文搜索,无限制长度
数组
正常 json 数组,[]
查询时,命中数组中的其中一个,就会认为符合条件
mapping 和 settings 结构
ES7
{
"mappings" : {
"properties" : {
"name" : { // 属性名
"type" : "keyword" // 属性类型
}
}
},
"settings" : {
"index" : {
"number_of_shards" : 1, // 分片数
"number_of_replicas" : 2 // 副本数
}
}
}
ES6
{
"mappings" : {
"student": { // 自定义type
"properties" : {
"name" : { // 属性名
"type" : "keyword" // 属性类型
}
}
}
},
"settings" : {
"index" : {
"number_of_shards" : 1, // 分片数
"number_of_replicas" : 2 // 副本数
}
}
}
问题
创建索引时,必须指定 mapping 和 settings 吗?
不是,有以下几种行为:
设置索引副本数量和分片数量是为了什么?
到此,相信大家对“elasticsearch的基础知识有哪些”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!