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 无限定通配符 八. ...
随机推荐
- HTML5 canvas自制画板
找到一个画板的插件,很好用,点击下载 ,页面很简单,但是呢,貌似不适用于手机端,,,
- C语言传递二维数组
方法一, 形参给出第二维的长度. 例如: #include <stdio.h> ] ) { int i; ; i < n; i++) printf("/nstr[%d] = ...
- java NIO - DirectBuffer 和 HeapBuffer
问题 : DirectBuffer 属于堆外存,那应该还是属于用户内存,而不是内核内存? FileChannel 的read(ByteBuffer dst)函数,write(ByteBuffer sr ...
- JavaScript学习笔记之二
一 js与json数据格式的转换:序列号与反序列化 JSON.stringify(jsobj, ' ');//将js的obj转换为json对象: JSON.parse()把json对象变成一个Jav ...
- 【C语言】找出1000以内所有的素数
#include<stdio.h> int main() { int i, j, t; ; i <= ; i++) { ; ; j < i; j++) { ) { t = ; ...
- 关于this和base的区别
一句话总结:在有冲突得时候,base和this能够进行区分,在没有冲突得时候,是一样得. 基于成员调用 基于构造方法 参考: http://www.cnblogs.com/reommmm/archiv ...
- Django 单元测试笔记
引言 关于单元测试的基本知识这里不再讲述,简单一句话:单元测试是用一段代码去测试另一段代码.最常用的框架是unittest,这是python的单元测试框架,而django单元测试框架test.Test ...
- [面试必备]深入理解Java的volatile关键字
前言 在Java并发编程中,volatile关键字有着至关重要的作用,在面试中也常常会是必备的一个问题.本文将会介绍volatile关键字的作用以及其实现原理. volatile作用 volatile ...
- PyQt5数据可视化
1.下载PyQtGraph模块 Windows上下载: pip install pyqtgraph Linux上下载: pip3 install pyqtgraph MacOS上下载: pip3 in ...
- jQuery结合CSS实现手风琴组件(2)----利用seajs实现静态资源模块化引入
1. 目录结构(webStrom) 2. 代码 1.html <!DOCTYPE html> <html lang="en"> <head> & ...