elasticsearch 自定义routing

     由于线上elasticsearch集群数据量越来越大,优化已经已经是重中之重。

     优化的方式有很多中,网上一大堆,自行百度。

     优化方案中有个叫routing的方案是个需要熟悉业务日志才能使用。于是我就研究了routing方式。

     网上有一大堆routing 的方法。但是大部分都是在mapping中加入_routing,required,path等参数工作的,但是我使用后发现有错误。如下: 

     reason": Mapping definition for [_routing] has unsupported parameters:  [path : category]"

     查看官网后发现: 原来在es2.0之后就不支持这种方式了。

   所以我通过这种方法:

    logstash 中指定routing的字段,然后插入到es中,es中不做任何设置。

    下面是我logstash的output部分:    

  output {
  if [type] == "dsq-info" {
    elasticsearch {
    hosts => ["10.1.0.12:9200"]
    index => "%{[fields][index]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
    routing => "%{category}"   ###这里是关键字,你选择使用那个字段做索引。
  }
  }
}

然后在kifana中指定routing查询。

GET ****/_search?routing=api      ###routing指定是字段中具体的值。

 

 

      

posted on 2017-12-23 14:44  机智的胖纸  阅读(6001)  评论(0编辑  收藏  举报

导航