用kibana 创建索引和mapping,可以直接拿走照搬

1 、打开 kibana dev-tools
在这里插入图片描述
ttps://img-blog.csdnimg.cn/1f461644e9004d6c8631989a23957e70.png)
2、创建索引 index_xxx

PUT  index_xxx  
{
    "settings": {
        "index": {
            "mapping": {
                "total_fields": {  //设置mapping 中字段个数,默认 1000
                    "limit": "2000"
                }
            },
            "number_of_shards": "20",
            "max_result_window": "2000000000",//最大查询结果数,不设置 默认应该是50W
            "analysis": {  //分词器 需要提前安装,没有额外分词器,可以去掉
                "analyzer": {
                    "analyzer_sz_tsconvert": {
                        "filter": [
                            "lowercase",
                            "asciifolding"
                        ],
                        "char_filter": [
                            "tsconvert"
                        ],
                        "tokenizer": "sz_tokenizer"
                    }
                },
                "char_filter": {
                    "tsconvert": {
                        "convert_type": "t2s",
                        "type": "stconvert"
                    }
                },
                "tokenizer": {
                    "sz_tokenizer": {
                        "token_chars": [
                            "letter",
                            "digit"
                        ],
                        "min_gram": "1",
                        "type": "ngram",
                        "max_gram": "1"
                    }
                }
            }
    }
}
}

3、创建映射mapping

PUT /index_xxx/type_xxx/_mapping
{
    "type_xxx": {    //type 名称 要和 PUT 命令中一致
        "dynamic": "true",
        "dynamic_templates": [
            {
                "named_user": {
                    "mapping": {
                        "store": true,
                        "type": "keyword"
                    },
                    "match": "user_column_*"
                }
            }
        ],
        "properties": {     //设置字段类型
             "xx_01": {   //short类型
                "store": true,
                "type": "short"
            },
             "xx_02": {    //integer类型
                "store": true,
                "type": "integer"
            },
             "xx_03": { //long类型
				"store": true,
				"type": "long"
			}"xx_04": {   //keyword 类型
                "store": true,
                "type": "keyword"
            },
             "xx_05":{   //date 类型,时间也可以用long 型的时间戳存储
				"format":"yyyy-MM-dd HH:mm:ss",
				"store":true,
				"type":"date"
            },
             "xx_06": {   //text 类型,支持全文搜索
        		"type": "text",
        		"index": true
			},
            "xx_07": {   //keyword类型,支持 关键词搜索
        		 "type": "keyword",
       			 "index": true
			},
            "xx_08": {  //text 类型 指定类型分词器
				"analyzer": "analyzer_sz_tsconvert",
				"type": "text"
			},
            "xx_09": {   //既支持全文搜索又支持关键词搜索
                "type": "text",
                "fields": {
                    "keyword": {
                        "ignore_above": 256,
                        "type": "keyword"
                    }
                }
            }
        }
    }
}

4、创建别名 一定要用别名哦好处大大滴

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "index_xxx",
        "alias": "index_xxx_alias"   
      }
    }
  ]
}

另外 也可以采用 动态模板 创建 索引 ,设置动态模板,然后直接插入数据即可,设置动态模板只针对于新建的索引生效,历史索引无效,这部分是摘取的
原文链接地址

PUT _template/xxx_template
{
    "index_patterns": ["shop*", "bar*"],       // 可以通过"shop*"和"bar*"来适配 
    "order": 0,                // 模板的权重, 多个模板的时候优先匹配用, 值越大, 权重越高
    "settings": {
        "number_of_shards": 1  // 分片数量, 可以定义其他配置项
    },
    "aliases": {
        "alias_1": {}          // 索引对应的别名
    },
    "mappings": {
        // ES 6.0开始只支持一种type, 名称为“_doc”
        "_doc": {
            "_source": {            // 是否保存字段的原始值
                "enabled": false
            },
            "properties": {        // 字段的映射
                "@timestamp": {    // 具体的字段映射
                    "type": "date",           
                    "format": "yyyy-MM-dd HH:mm:ss"
                },
                "@version": {
                    "doc_values": true,
                    "index": "false",   // 设置为false, 不索引
                    "type": "text"      // text类型
                },
                "logLevel": {
                    "type": "long"
                }
            }
        }
    }
}

ES7.0+以后 创建索引 和映射

1、PUT XXXX XXX索引名称
2、PUT XXXX/_mapping

{   
    "properties": {
        "website": {
            "type": "text",
            "fields": {
                "keyword": {
                    "ignore_above": 256,
                    "type": "keyword"
                }
            }
        }
    }
 }
修改索引返回数量最大值
kibana
PUT xxx_索引名/_settings
{
  "index":{
    "max_result_window":1000000
  }
}

在这里插入图片描述

Logo

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

更多推荐