映射/模版

暂时没有玩明白这个,但是目前确实用它解决了一个问题,在统计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'

results matching ""

    No results matching ""