通过elasticsearch-head新建索引

在这里插入图片描述
新建完的索引,重点要设置settingmapping两个参数,后面详细展开介绍。
在这里插入图片描述

索引命名要求
  • 索引命名只能使用小写字母
  • 不能包含除-_以外的特殊字符
  • 不能用-_开头
  • 长度必须小于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
                            }
                        }
                    }
                }
            }
        ]
    }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐