elasticsearch 如何使用Vega Lite仅打印最新时间的文档?
我有一个带有时间字段“time”的索引,每个“time”值都有多个文档。 我只想介绍最近一次的结果。我怎么做? 是否有方法计算所有文档上时间字段的最大值,然后根据该值应用过滤器 下面是一个代码示例:elasticsearch 如何使用Vega Lite仅打印最新时间的文档?,elasticsearch,kibana,vega-lite,graph-visualization,elasticsearch,Kibana,Vega Lite,Graph Visualization,我有一个带有时间字段“time”的索引,每个“time”值都有多个文档。 我只想介绍最近一次的结果。我怎么做? 是否有方法计算所有文档上时间字段的最大值,然后根据该值应用过滤器 下面是一个代码示例: { $schema: https://vega.github.io/schema/vega-lite/v2.json data: { data: table url: { %context%: true %timefield%: Time
{
$schema: https://vega.github.io/schema/vega-lite/v2.json
data: {
data: table
url: {
%context%: true
%timefield%: Time
index: data*
body: {
size: 10000
_source: ["X", "Y"]
}
}
format: {property: "hits.hits"}
}
mark: {type: "square", filled: true, size: 800 }
encoding: {
x: {
field: "_source.X"
type: quantitative
axis: {title: "X"}
}
y: {
field: "_source.Y"
type: quantitative
axis: {title: "Y"}
}
}
}
我试过这个代码,但仍然不起作用。
我猜我的语法不正确
{
"$schema": "https://vega.github.io/schema/vega-lite/v2.json",
"data": {
"data": "table",
"url": {
"%context%": true,
"%timefield%": "Time",
"index": "data*",
"body": {
"size": 10000,
"aggs": {
"time_field": {
"terms": {"field": "Time", "size": 1, "order": {"_key": "desc"}},
"aggs": {
"x_Field": {"terms": {"field": "X", "size": 10000}},
"y_Field": {"terms": {"field": "Y", "size": 10000}}
}
}
}
}
},
"format": {"property": "aggregations.category.buckets[0].x_Field.buckets"}
"format": {"property": "aggregations.category.buckets[0].y_Field.buckets"}
},
"mark": {"type": "square", "filled": true, "size": 800},
"encoding": {
"x": {"field": "x_Field", "type": "quantitative", "axis": {"title": "X"}},
"y": {"field": "y_Field", "type": "quantitative", "axis": {"title": "Y"}}
}
}
您可以按大小1降序排列时间字段,这将为您提供属于最新时间的文档,然后您需要根据elasticsearch输出更改格式。 以下是弹性搜索的示例代码:
"body": {
"size": 10000,
"aggs": {
"time_field": {
"terms": {
"field": "Time",
"size": 1,
"order": {
"_key": "desc"
}
},
"aggs": {
"x_Field": {
"terms": {
"field": "x",
"size": 10000
}
}
}
}
}
}
编辑:使用以下格式后,您可以在键中获得展平的x字段数据
"format": {
"property": "aggregations.category.buckets[0].x_Field.buckets"
}
非常感谢。但是,我如何处理“编码”部分中的X和Y字段呢?我在回答中添加了一个编辑,它将为您的X字段提供扁平桶数组,类似于为Y字段提供扁平桶数组的方式。我试图将其添加到我的代码中,但我猜我做错了(我编辑了我的问题并添加了它)。你能帮我找到问题吗?是的,它不正确。首先,仅尝试使用x轴。首先在vega lite编辑器中尝试您的示例。还可以通过谷歌查看弹性搜索示例。