这两天一直在看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. zabbix4.4安装和简要设置

    简介 Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.它能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决 ...

  2. 【MySQL】完整性约束

    " 目录 not null default unique 单列唯一 联合唯一 primary key 单列主键 复合主键 auto_increment 步长与偏移量 foreign key ...

  3. 解决1130-host'192.168.2.137'is not allowed to connect to this mysql server报错问题

    连接数据库服务器出现1130-host'192.168.2.137'is not allowed to connect to this mysql server错误, 这个问题是因为在数据库服务器中的 ...

  4. 《MFC dialog中加入OpenGL窗体》

    <MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控 ...

  5. Java后台技术(Dubbo入门)

    我现在公司提供的产品是即时通讯软件,因为我从.net桌面应用开发转岗,从java后台转项目经理,让我有幸拥有了后台开发人员所有的权限,所有的后台源码和技术文档对我开放,可惜仅在后台待了3周不到,还没来 ...

  6. CSS:定位概述

    background-position 背景定位 如果,说浮动, 关键在一个 "浮" 字上面, 那么 我们的定位,关键在于一个 "位" 上. PS: 定位是我们 ...

  7. 《Web安全攻防 渗透测试实战指南 》 学习笔记 (五)

    Web安全攻防 渗透测试实战指南   学习笔记 (五)   第四章 Web安全原理解析  (一) (一)SQL注入的原理 1.web应用程序对用户输入数据的合法性没有判断. 2.参数用户可控:前端传给 ...

  8. 路由器安全-NetFlow

    1.NetFlow介绍 提供高层次的诊断,分类和识别网络异常. 使用NetFlow来检查哪些行为改变明显的攻击是非常有效的. 就像Wiretap一样捕获数据包. NetFlow像电话账单.(谁和谁在通 ...

  9. 【SSM 验证码】登录验证码

    LoginController /** * 登陆方法 */ @ResponseBody @RequestMapping("login2") public Map<String ...

  10. 【PAT甲级】1060 Are They Equal (25 分)(需注意细节的模拟)

    题意: 输入一个正整数N(<=100),接着输入两个浮点数(可能包含前导零,对于PAT已经习惯以string输入了,这点未知),在保留N位有效数字的同时判断两个数是否相等,并以科学计数法输出. ...