es-3-创建索引&新建mapping
索引命名要求索引命名只能使用小写字母不能包含除-_以外的特殊字符不能用-_开头长度必须小于255B索引别名给一个索引起多个别名给多个索引起一个别名(更有意义,为了不让一个索引的容量过于大,可以每隔一段时间把新增数据新建一个索引,然后命名同一个别名)。索引操作索引关闭:索引关闭后除了元数据以外不会再占用任何集群资源。索引模板:规定索引创建的模式和规则,别名、配置、映射关系,分别用index_patt
·
通过elasticsearch-head新建索引
新建完的索引,重点要设置setting和mapping两个参数,后面详细展开介绍。
索引命名要求
- 索引命名只能使用小写字母
- 不能包含除-_以外的特殊字符
- 不能用-_开头
- 长度必须小于255B
索引别名
- 给一个索引起多个别名
- 给多个索引起一个别名(更有意义,为了不让一个索引的容量过于大,可以每隔一段时间把新增数据新建一个索引,然后命名同一个别名)。
_mapping
mapping 相当于数据库中的 schema 的定义,作用如下:
- 定义索引中的字段名称
- 定义字段的数据类型,如 字符串,数字,布尔…
- 字段、倒排索引的相关配置 (分不分词,分词器的选择等)
mapping 会把 JSON 文档映射成 Lucene 所需要的扁平格式
- 一个Mapping属于一个索引的 Type
- 每个文档都属于一个Type
- 一个 Type 有同一个 Mapping 定义
- 7.0 开始,不需要在 Mapping 定义中指定 type 信息,每个mapping仅对文档中的_doc生效
索引操作(定义一些索引创建的效果)
- 索引关闭:索引关闭后除了元数据以外不会再占用任何集群资源。
- 索引模板:规定索引创建的模式和规则,别名、配置、映射关系,分别用index_patterns、aliases、settings、mappings来设置。
PUT _template/test
{
"index_patterns": ["log*", "product*"],
"settings":{
"number_of_shards": 2,
"number_of_replicas": 1
},
"mappings":{
"doc":{
"properties":{
"ip":{
"type":"keyword"
},
"method":{
"type": "keyword"
}
}
}
}
}
# index_patterns是索引模式,指当创建以log和product开头的索引时,使用该索引模板
# 在settings设置中,我们自定义为该索引分配3个主分片。复制分片不变
# mappings中指定映射关系
- 修改索引的_setting时,需要关闭索引进行操作。
- 动态映射:在没有创建任何文档映射的时候,向文档内添加数据的时候,es会根据value的值自动定义字段类型,后续同名的key无论是什么类型都会以第一次的为准。如果在定义_mapping的时候,设置了dynamic=false,则数据还会正常存储,但是不会生成任何mapping。
- 动态映射模板:匹配出match_mapping_type类型的将被设置为mapping类型,如下,被es默认为long类型的会以interger类型创建mapping:
{
"mappings": {
"dynamic_templates": [
{
"dt_name_one": {
"match_mapping_type": "long",
"mapping": {
"type": "integer"
}
}
},
{
"dt_name_two": {
"match_mapping_type": "string",
"mapping": {
"type": "text",
"fields": {
"raw": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
]
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)