- 含有相同属性的文档集合
- 类似于mysql数据库中的database
Type(类型)
- 索引可以定义一个或多个类型,文档必须属于一个类型;
- 类似于mysql数据库中的table表,es中可以在index中建立type(table),通过mapping进行映射
Document(文档)
- 文档是可以被索引的基本数据单位
- 一条数据对应一篇文档即相当于mysql数据库中的一行数据row
分片
- 每个索引都有多个分片,每个分片是一个Lucenc索引
备份
- 拷贝一个份分片就完成了分片的备份
Mapping
- 可以理解为mysql或者solr中对应的schema,es中的mapping增加了动态识别的功能
# 查看mapping GET /lib1/user/_mapping # 执行结果 { "lib1": { "mappings": { "user": { "properties": { "adress": { "type": "text" }, "age": { "type": "integer" }, "birthday": { "type": "date" }, "interests": { "type": "text" }, "name": { "type": "text" }, "script": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } } } } } }
- 什么是映射:mapping定义了type中的每一个字段的数据类型以及这些字段如何分词此等相关属性
-- 自定义mapping,创建索引的时候,可以预定义字段的类型以及相关属性,这样就能够把日期字段处理成日期,
-- 把数字字段处理成数字,把字符串字段处理成字符串值等 PUT /lib1 { "settings": { "number_of_shards": 5 , "number_of_replicas": 0 }, "mappings": { "user":{ "properties": { "name":{"type":"text"}, "adress":{"type":"text"}, "age":{"type":"integer"}, "interests":{"type":"text"}, "birthday":{"type":"date"} } } } } - 支持的数据类型:核心数据类型
- 字符型
- text:该类型被用来索引长文本,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引。允许es来检查这些词语,text类型不能用来排序和聚合
- keyword:该类型不需要进行分词,可以被用来检索过滤、排序和聚合。keyword类型只能用本身来进行检索
- 数字类型
- long
- integer
- short
- byte
- double
- float
- 日期类型
- date
- 布尔类型
- boolean
- 二进制类型
- binary
- 字符型
- Indexed
- 就是名义上的建立索引,es中默认都是会加上索引的
- Query DSL
- 类似于mysql的sql语句,只不过在es中是使用的json格式的查询语句