我想创建一个仪表板,显示有关一组有限的请求值的信息:
s = <<-STR
123
456
STR
s.scan /\d+/ #=> ["123", "456"]
s.scan /(\d+)/ #=> [["123"], ["456"]]
到目前为止我已尝试过:
他们是使用Dashboard编辑器执行此操作的方法还是需要通过Settings-&gt; Objects-&gt; Dashboards进行一些json脚本编写?如果是这样,你能指出我对这个(转义)语法的一个很好的参考吗?
在Kibana 3中,您可以定义&#34;&#34;类型的过滤器。 Kibana 4中是否存在此功能?
我正在使用Kibana 4.0.2
答案 0 :(得分:14)
我不确定这是否是您实际问题的答案,无论如何我都会写,因为有人可能会受益,我发现在使用Google搜索时Kibana过滤器语法的示例难以捉摸。
我正在尝试在“发现”选项卡中定义布尔过滤器而不是布尔查询,以便整理搜索字段并对有限的一组值进行进一步过滤。
我发现this link to the documentation描述了AND,OR,NOT过滤器语法。经过一些实验,这对我有用,例如:
我有一个名为host
的字段,其中包含发送日志条目的服务器的名称。有很多服务器,每个服务器属于多个冗余组之一。仅过滤服务器生成的日志条目&#34; SERVER06
或SERVER07
或SERVER08
&#34;碰巧属于一个独特的冗余组B-Servers
我可以像这样制作一个OR过滤器:
{
"bool": {
"should": [
{
"query": {
"match": {
"host": {
"query": "SERVER06",
"type": "phrase"
}
}
}
},
{
"query": {
"match": {
"host": {
"query": "SERVER07",
"type": "phrase"
}
}
}
},
{
"query": {
"match": {
"host": {
"query": "SERVER08",
"type": "phrase"
}
}
}
}
]
}
}
并将其另存为名为B-Servers
的搜索。现在我得到一个过滤列表,在那里我可以选择一个具有更多限制性过滤器的服务器。在我拥有所有服务器之前,quick count
仅列出了五个顶级条目,因此我必须选择一个,然后手动编辑过滤器,如果我的目标不在列表中。
这对其他字符串类型字段也很有用。文档应该包含我想的几个例子,为bool语句的放置设置上下文,而不仅仅是原理的演示。
This link对于演示如何从搜索字段而不是过滤器中进行布尔值也很有用。
[编辑] Kibana 5.2的更新,因为我无法使用以前的语法。以下是5.2的技巧,我使用this link来解决这个问题:
{
"query": {
"bool": {
"should": [
{
"match": {
"host": "SERVER06"
}
},
{
"match": {
"host": "SERVER07"
}
},
{
"match": {
"host": "SERVER08"
}
}
],
"minimum_should_match": 1
}
}
}
答案 1 :(得分:1)
Kibana 4完全重写,显然并非所有Kibana 3功能都已实现。我发现了一个&#34;增强&#34;在Kibana github的票: https://github.com/elastic/kibana/issues/3693
暂时关闭了我的问题。
答案 2 :(得分:0)
您肯定可以在信息中心中添加OR过滤器。由于仪表板是根据保存的可视化创建的,因此在可视化中,您可以添加包含OR的过滤器,该过滤器将反映此类数据。
根据我对你的问题的理解,我发布了我的答案(随意纠正我): -
希望它能回答你的问题:)
答案 3 :(得分:-1)
lucene语法是“OR”(大写),所以“foo OR bar”。
更正查询后,您可以将搜索保存在“发现”标签中,并在可视化中查看已保存的搜索。
如果您不希望单独保存查询,也可以在可视化中手动设置查询。