Kibana两个字段求和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kibana两个字段求和相关的知识,希望对你有一定的参考价值。

参考技术A 比如现在es的索引中有2个字段,且都为数字类型,现在想在kibana上求一条文档这2个字段之和,发现直接在kibana上使用sum指标是无法求和的。这时可以用脚本的方法,在json input中使用groovy脚本来求和,如下图所示:

eg:

ES:Kibana

Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的,查询语法是基于Lucene的查询语法。允许布尔运算符、通配符和字段筛选。注意关键字要大写

全文搜索


  • 在搜索栏输入login,会返回所有字段值中包含login的文档
  • 使用双引号包起来作为一个短语搜索 "like Gecko"

字段搜索:也可以按页面左侧显示的字段搜索


  • 限定字段全文搜索:field:value
  • 精确搜索:关键字加上双引号 filed:"value"
  • http.code:404 搜索http状态码为404的文档
  • 字段本身是否存在
    1. _exists_:http:返回结果中需要有http字段
    2. _missing_:http:不能含有http字段

通配符


  • ? 匹配单个字符
  • * 匹配0到多个字符
  • ? * 不能用作第一个字符,例如:?text *text

模糊搜索


  • ~:在一个单词后面加上~启用模糊搜索, first~ 也能匹配到 frist
  • 还可以指定需要多少相似度,如:cromm~0.3 会匹配到 from 和 chrome
  • 数值范围0.0 ~ 1.0,默认0.5,越大越接近搜索的原始值

近似搜索


  • 在短语后面加上~,如:"select where"~3 表示 select 和 where 中间隔着3个单词以内

范围搜索


  • 数值和时间类型的字段可以对某一范围进行查询,如:
    1. length:[100 TO 200]
    2. date:{"now-6h" TO "now"}
    3. [ ] 表示端点数值包含在范围内,{ } 表示端点数值不包含在范围内

逻辑操作


  • 布尔运算符(AND,OR,NOT), 运算符AND/OR/NOT必须大写
  • +:搜索结果中必须包含此项
  • -:不能含有此项
  • +apache -jakarta test:结果中必须存在apache,不能有jakarta,test可有可无

分组


  • 如:(jakarta OR apache) AND jakarta
  • 字段分组: title:(+return +"pink panther")

转义特殊字符


  •  + - && || ! () {} [] ^" ~ * ? : \    以上字符当作值搜索的时候需要用\转义

以上是关于Kibana两个字段求和的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb - 猫鼬,通过对两个字段求和进行排序

如何对两个 SUMmed SQL 结果字段求和

如何对 AngularJS 中的两个字段求和并在标签中显示结果?

Oracle如何将多次分组求和的数据合并到一张表上?

在 WordPress 数据库查询中加入/求和自定义字段

使用 ClickHouse 提取和求和字符串内的子字段的值