映射/模版
暂时没有玩明白这个,但是目前确实用它解决了一个问题,在统计PV、UV时,需要用到聚合功能,但是Nginx入ES中的数据,其中client_ip字段($remote_addr),默认是text类型,但是text不支持聚合,需要修改为keyword并且开启fielddata,折腾了半天,才弄出来,所以以下仅作为折腾时学习到的一点零碎知识,以后回来系统的看下模版和映射
获取现有索引mapping
# curl -s -k -XGET 'https://user:[email protected]:9200/pro_nginx_access-hcsy-db-2018-06-01/_mapping/doc?pretty'
修改现有索引mpping
PUT develop_nginx_access-hcsy-web-2018.05.30/_mapping/doc
{
"properties": {
"clinet_ip": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
模版配置
template字段定义那些索引应用这个模版,注意不要重复,不然可能会出问题
{
"template" : "develop_nginx_access*",
"order" : 0,
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"doc" : {
"properties" : {
"client_ip" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"fielddata" : true
}
}
}
}
}
上传模版
# curl -s -k -XPUT -H "Content-Type: application/json" 'https://user:[email protected]:9200/_template/pro_nginx_template' [email protected]
删除模版
# curl -s -k -XDELETE -H "Content-Type: application/json" 'https://user:[email protected]:9200/_template/pro_nginx_template'