因为线上elasticsearch集群数据量愈来愈大,优化已经已是重中之重。api
优化的方式有不少中,网上一大堆,自行百度。app
优化方案中有个叫routing的方案是个须要熟悉业务日志才能使用。因而我就研究了routing方式。elasticsearch
网上有一大堆routing 的方法。可是大部分都是在mapping中加入_routing,required,path等参数工做的,可是我使用后发现有错误。以下: 优化
reason": Mapping definition for [_routing] has unsupported parameters: [path : category]"ui
查看官网后发现: 原来在es2.0以后就不支持这种方式了。日志
因此我经过这种方法:索引
logstash 中指定routing的字段,而后插入到es中,es中不作任何设置。it
下面是我logstash的output部分: io
output {
if [type] == "dsq-info" {
elasticsearch {
hosts => ["10.1.0.12:9200"]
index => "%{[fields][index]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
routing => "%{category}" ###这里是关键字,你选择使用那个字段作索引。
}
}
}ast
而后在kifana中指定routing查询。
GET ****/_search?routing=api ###routing指定是字段中具体的值。