这两天一直在看elasticsearch相关的内容,看到mapping这一块,就折腾了下。

一般情况下,我们不需要对elasticsearch的mapping进行设置,但如果希望对索引使用自定义的管理,那么就需要了解这一块的内容了。这里是我在Logstash中对elasticsearch的设置.

这里是Logstash的配置:

output {

  if [type] == "test" {
    elasticsearch {
      hosts => ["10.1.0.12:9200"]
        index => "test"
      document_type => "%{[@metadata][type]}"
      manage_template => true
      template_overwrite => true
      template_name => "json_php_mapping"
      template => "/usr/local/services/logstash/templates/test.json"
}
}
}

这里注意:index,template_name,template

    index:  在elasticsearch上索引的名字

    template_name: 使用elasticsearch上_template下的模板(与template关联不大)

    template:在_template下生成模板。

下面是test.json:

{
  "template": "test",
  "settings":{
  "index.number_of_shards": 5,
  "number_of_replicas": 1,
  "index.refresh_interval":"60s"
  },
  "mappings" : {
    "_default_": {
    "_all": {"enabled": false},
    "dynamic": true,
    "date_detection": true,
    "dynamic_date_formats": [
    "date_optional_time||epoch_millis||epoch_second",
    "yyyy-MM-dd'T'HH:mm:ssZZ.SSS||yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss.SSS"
    ],
    "dynamic_templates": [{
      "date":{
        "match_mapping_type": "date",
        "match": "date_*",
        "mapping":{
          "type": "date"
          }
        }
     },{
      "strings": {
        "match_mapping_type": "string",
        "match": "s_*",
        "mapping":{
        "type": "keyword",
        "ignore_above": 256
         }
        }
     },{
      "long": {
        "match_mapping_type":"*",
        "match": "l_*",
        "mapping":{
          "type": "integer"
           }
          }
      },
      {
      "double": {
        "match_mapping_type": "*",
        "match": "d_*",
        "mapping": {
        "type": "double"
        }
      }
     },
      {
        "analyzer": {
          "match": "t_*",
          "mapping": {
          "type": "text",
            "index": true,
            "analyzer": "english"
            }
          }
      },
      {
        "ip": {
          "match_mapping_type": "*",
          "match": "ip_*",
          "mapping": {
            "type": "ip"
            }
           }
        }
       ]
      }
    }
}

参数解释:

  template: 这里是模板的名字,可以在kibana中使用:GET _template 来查看es下的所有模板

  settings: 一般设置分片。 index.refresh_interval 一般是用户将segments刷新到磁盘缓存的时间间隔,默认是1s

  _default_:  index中的type中使用默认的这个mapping.注意:在6.0版本后特性被移除

  dynamic: 开启动态模板

  date_detection: 打开时间格式的识别

  dynamic_date_formats: 可以识别的时间格式

  dynamic_templates下定义: 

  "dynamic_templates": [
{
"my_template_name": {
... match conditions ...
"mapping": { ... }
}
},
...
]

  my_template_name:就是给下面match取得名字,没什么作用。

  match conditions: (https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html)

    1. match_mapping_type :匹配字段的类型。通过类型匹配字段

    2. match: 匹配字段,通过正则匹配字段

    3. match_pattern: 一般与上面的match使用,用于正则

 还有一些插入时间es自动生成的,如@timestamp,_type,version等等,差不多就这样了。

  官网关于这一块介绍的很容易理解,建议看官网,下面的连接是本文中最关键的:https://www.elastic.co/guide/en/elasticsearch/reference

 

   

elasticsearch mapping简单介绍的更多相关文章

  1. ELK学习实验004:Elasticsearch的简单介绍和操作

    一 集群节点 Elstaicsearch的集群是由多个节点组成都,通过cluster.name设置集权名称,比能切用与区分其他的集群,每个节点通过node.name指定节点 在Elasticsearc ...

  2. ElasticSearch实战系列四: ElasticSearch理论知识介绍

    前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...

  3. Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍

    原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...

  4. ElasticSearch API 简要介绍

    调用其API会返回很多信息,例如集群的信息,节点的信息等 检查集群的状态----Restful API说明 1:检查集群状态信息 2:管理集群 3:执行 增删改查 命令 4:执行高级命令 Restfu ...

  5. Elasticsearch教程(五) elasticsearch Mapping的创建

    一.Mapping介绍 在Elasticsearch中,Mapping是什么? mapping在Elasticsearch中的作用就是约束. 1.数据类型声明 它类似于静态语言中的数据类型声明,比如声 ...

  6. springboot简单介绍

    1.springboot简单介绍 微服务架构 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. 该框架使用了特定的方 ...

  7. Frame Relay - 简单介绍及基本配置

    Frame Relay如今越来越不流行了,只是在过去的设计中被广泛应用. 所以工作上还是能常常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广 ...

  8. Hibernate学习(1)简单介绍

    1.什么是Hibernate?           首先,Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有非常多比方:iBATIS,myBatis,Nhibernate,Siena等 ...

  9. Java泛型使用的简单介绍

    目录 一. 泛型是什么 二. 使用泛型有什么好处 三. 泛型类 四. 泛型接口 五. 泛型方法 六. 限定类型变量 七. 泛型通配符 7.1 上界通配符 7.2 下界通配符 7.3 无限定通配符 八. ...

随机推荐

  1. ubuntu mysql新增用户并开启远程连接

    1.首先用root用户登录mysql mysql -u root -p 输入密码后登录成功 2.新建用户 use mysql; select host,user from user;(查看现有用户) ...

  2. sping中AOP

    委托代理的概念: 委托类对象就是我们后面说到的"目标对象", 也就是需要[被]代理的对象 target代理类对象就是我们后面说到的"代理对象",目标对象就是需要 ...

  3. 【Android】网络通信

    https://www.bilibili.com/video/av78497129?p=4 本文为此视频笔记 1.一些标准设定 (读头部和内容) --->运行,出现权限警告: --->运行 ...

  4. Deeplearning.ai课程笔记-结构化机器学习项目

    目录 一. 正交化 二. 指标 1. 单一数字评估指标 2. 优化指标.满足指标 三. 训练集.验证集.测试集 1. 数据集划分 2. 验证集.测试集分布 3. 验证集.测试集大小 四. 比较人类表现 ...

  5. MDC 输出线程信息帮助定位问题

    log4j中的%x ---NDC,%X---MDC 即%x NDC.clear();NDC.push(this.toString());%X{first} %X{last}MDC.put(" ...

  6. python splash scrapy

    python splash scrapy 1.      前言 slpash是一个渲染引擎,它有自己的api,可以直接访问splash服务的http接口,但也有对应的包python-splash方便调 ...

  7. Java IO流详解(三)——字节流InputStream和OutPutStream

    我们都知道在计算机中,无论是文本.图片.音频还是视频,所有的文件都是以二进制(字节)形式存在的,IO流中针对字节的输入输出提供了一系列的流,统称为字节流.字节流是程序中最常用的流.在JDK中,提供了两 ...

  8. leetcode 0208

    目录 ✅ 108. 将有序数组转换为二叉搜索树 描述 解答 py [tdo rev 0208]py知识:if not x: 和if x is not None:和if not x is None:使用 ...

  9. Laravel 6.X 数据库迁移 创建表 与 修改表

    数据库迁移创建表 本篇文章中使用的是mysql数据库,其他数据库需要修改env文件和app配置,请其他地方搜索一下就会找到. 创建示例 1.创建users表: 命令行键入 php artisan ma ...

  10. dp-简单迷宫捡金币

    链接:https://ac.nowcoder.com/acm/challenge/terminal 吃货LP参加了珠海美食节,每见一家摊位都会大吃一顿,但是如果不加收敛,接下来的日子就只能吃土了,所以 ...