[白开水]-ElKstack-es2.3-nginx日志自定义mapping的模板方法
2016-07-28 11:26
615 查看
引用
mapping默认是集成于template的,当然如果mapping有设定的话,就走自定义的mapping.mapping相当于字段描述,比如某个字段是float,某个字段需要分词,某个字段是date类型,是否可以搜索template,字面意思是模板,他所作的事情也是模板的事情,他可以针对index做别名,也就是说,xiaorui* = xiaorui_v2_2013 xiaorui_v2_2014 … 通配符elasticsearch默认是字符串的类型的字段都会分词的,通俗说,你使用elasticsearch query_string match都可以命中查询的。但是所有的字段分词,他也会带来性能及空间占用问题,所以我们只会针对特定的字段来进行开放分词。问题
es在mapping默认的时候,会对nginx访问日志某些字段进行分词,这样变会导致nginx展示时字段表意不明。解决
可以通过template自定义mapping,来解决此类问题而mapping中字段属性:"index": "not_analyzed",决定着该字段是否被分词
具体步骤
命令解释
模板查看
GET/_template 查看当前es系统所有的模板详情新建模板
template_1 为模板名PUT/_template/template_1 { "template":"t-*", "settings":{ "number_of_shards":1 }, "mappings":{ "type1":{ "_source":{ "enabled":false } } } }
nginx模板实例:
PUT/_template/ dev-nginx-logs { "template": "dev-nginx-logs-*", "settings": { "number_of_shards": "5", "number_of_replicas": "1" }, "mappings": { "nginx_access_logs": { "properties": { "@timestamp": { "format": "dateOptionalTime", "type": "date", "index": "not_analyzed", "doc_values": true }, "status": { "type": "string", "index": "not_analyzed", "doc_values": true }, "upstreamhost": { "type": "string", "index": "not_analyzed", "doc_values": true }, "upstreamtime": { "type": "float" }, "url": { "type": "string", "index": "not_analyzed", "doc_values": true } } } } }
相关文章推荐
- JQuery插件Style定制化方法的分析与比较
- CSS和JS标签style属性对照表(方便js开发的朋友)
- ppk谈JavaScript style属性
- asp中去除html中style,javascript,css代码
- javascript下用for( in )语句 获得所有style 内容的脚本代码
- JavaScript修改css样式style动态改变元素样式
- JavaScript修改css样式style
- Default style sheet for HTML 4
- JavaScript操作class和style样式代码详解
- gridview生成时如何去掉style属性中的border-collapse
- Android入门之Style与Theme用法实例解析
- Android自定义Style实现方法
- JavaScript中的style.display属性操作
- js改变style样式和css样式的简单实例
- JavaScript正则表达式匹配 div style标签
- 【转】SourceInsight 中集成Artistic Style 格式化代码 3ff0
- FileMaker开发过程中的风格保存功能
- 样式化的定型对象--Style样式的定义
- Hadoop 1.2.1 安装笔记01 : Linux 与免密码