如何在kibana中按条件填充脚本字段值

时间:2015-05-16 11:28:44

标签: elasticsearch kibana kibana-4

我正在使用Kibana 4,我的文档包含两个整数字段,名为:' x' &安培; ' Y&#39 ;.我想在Kibana中创建一个脚本字段,返回' x'的分区值。 by' y'如果' y'<> 0. else:返回' x'。

的值

我试图将此脚本添加到新的screnter code hereipting字段: doc['x'].value > 0 ? doc['x'].value/doc['y'].value : doc['x'].value;
但在尝试可视化时遇到了解析错误:

  

错误:对Elasticsearch的请求失败:   {"错误":" SearchPhaseExecutionException [无法执行阶段[查询],   所有分片都失败了; shardFailures

如何在Kibana中逐步创建带条件的脚本字段?

1 个答案:

答案 0 :(得分:2)

您所看到的不是解析错误,shardFailures仅表示底层Elasticsearch还没有准备好。在启动Kibana / Elasticsearch时,确保您的ES群集在潜入Kibana之前已准备就绪,即运行curl -XGET localhost:9200/_cluster/health并在响应中,您应该看到与此类似的内容:

{
    cluster_name: your_cluster_name
    status: yellow           <----- this must be either yellow or green
    timed_out: false
    number_of_nodes: 2
    number_of_data_nodes: 2
    active_primary_shards: 227
    active_shards: 454
    relocating_shards: 0     <----- this must be 0
    initializing_shards: 0   <----- this must be 0
    unassigned_shards: 25
}

至于你的脚本,它是正确编写的,但是你提到的条件不正确,因为你想要y <> 0而不是x > 0,所以它应该是

 doc['y'].value != 0 ? doc['x'].value / doc['y'].value : doc['x'].value

请试一试