elasticsearch mapping简单介绍
这两天一直在看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简单介绍的更多相关文章
- ELK学习实验004:Elasticsearch的简单介绍和操作
一 集群节点 Elstaicsearch的集群是由多个节点组成都,通过cluster.name设置集权名称,比能切用与区分其他的集群,每个节点通过node.name指定节点 在Elasticsearc ...
- ElasticSearch实战系列四: ElasticSearch理论知识介绍
前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...
- Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍
原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...
- ElasticSearch API 简要介绍
调用其API会返回很多信息,例如集群的信息,节点的信息等 检查集群的状态----Restful API说明 1:检查集群状态信息 2:管理集群 3:执行 增删改查 命令 4:执行高级命令 Restfu ...
- Elasticsearch教程(五) elasticsearch Mapping的创建
一.Mapping介绍 在Elasticsearch中,Mapping是什么? mapping在Elasticsearch中的作用就是约束. 1.数据类型声明 它类似于静态语言中的数据类型声明,比如声 ...
- springboot简单介绍
1.springboot简单介绍 微服务架构 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. 该框架使用了特定的方 ...
- Frame Relay - 简单介绍及基本配置
Frame Relay如今越来越不流行了,只是在过去的设计中被广泛应用. 所以工作上还是能常常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广 ...
- Hibernate学习(1)简单介绍
1.什么是Hibernate? 首先,Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有非常多比方:iBATIS,myBatis,Nhibernate,Siena等 ...
- Java泛型使用的简单介绍
目录 一. 泛型是什么 二. 使用泛型有什么好处 三. 泛型类 四. 泛型接口 五. 泛型方法 六. 限定类型变量 七. 泛型通配符 7.1 上界通配符 7.2 下界通配符 7.3 无限定通配符 八. ...
随机推荐
- html学习3-CSS补充
position fixed:把标签固定在页面的某处 例子:使用fixed制作“回到顶部”按钮 <!DOCTYPE html> <html lang="en"&g ...
- Spring IoC(一)bean实例化和依赖注入
1.IoC容器概述 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入. 所谓 IOC ,就 ...
- 树莓派下编译并使用miracl密码库
参考:Linux下编译并使用miracl密码库 MIRACL用户手册:https://wenku.baidu.com/view/d542f2ed0975f46527d3e1dc.html 具体过程. ...
- hadoop中block副本的放置策略
下面的这种是针对于塔式服务器的副本的放置策略
- 第八届极客大挑战 Web-php绕过
0x01.web-PHP的悖论1 题目: 链接:http://game.sycsec.com:2009/10111.php 解题思路: 1.首先,web对于选择二进制方向的我这个菜鸡绝对是十分懵逼的, ...
- mongdb 复制集
步骤: 一.启动三台进程 1../bin/mongod --dbpath=/home/work/app/mongodb/mongodb-linux-x86_64-amazon-3.2.7/data/r ...
- 本地简单HTTP服务器
cd进要启动服务器的目录 python -m http.server 7800 (Python 3.x) python -m SimpleHTTPServer 7998 (Pyhton2.x)
- JDBC statement的常用方法
Statement接口: 用于执行静态SQL语句并返回它所生成结果的对象. 三种Statement类: Statement: 由createStatement创建,用于发送简单的SQL语句(最好是不带 ...
- 【PAT甲级】1056 Mice and Rice (25 分)
题意: 输入两个正整数N和M(<=1000),接着输入两行,每行N个数,第一行为每只老鼠的重量,第二行为每只老鼠出战的顺序.输出它们的名次.(按照出战顺序每M只老鼠分为一组,剩余不足M只为一组, ...
- python字符串操作方法详解
字符串 字符串序列用于表示和存储文本,python中字符串是不可变对象.字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单,双或三引号中间包含的内容称之为字符串.其中三引号可以由多 ...