假设我有以下类型的事件:
{"title":"title1","movieStatistics":[{"country":"US","cast":[{"name":"Actor1","age":30,"languages":["English","Spanish"]},{"name":"Actor2","age":48,"languages":["English","Polish","Spanish"]}]}]}
通过以下搜索: 索引=“索引-blabla” |表“movieStatistics{}.cast{}.languages{}”“movieStatistics{}.cast{}.age”
我得到这张表:
movieStatistics{}.cast{}.languages{} | movieStatistics{}.cast{}.age |
---|---|
英语 西班牙语 英语 波兰语 西班牙语 |
30 48 |
这不容易利用,因为我无法真正将“年龄”和“语言”联系起来(我知道这没有意义,但这只是为了举例)。
您能否帮我找到适当的搜索,以便获得如下所示的表格:
movieStatistics{}.cast{}.languages{} | movieStatistics{}.cast{}.age |
---|---|
英语 西班牙语 |
30 |
英语 波兰语 西班牙语 |
48 |
我尝试了
mvexpand
,但看起来它不符合我的需要。
如果您使用
spath
来解析 _raw
并将所有内容分解,那么使用 mvexpand
就为时已晚了。您需要先使用mvexpand
:
| spath movieStatistics{}.cast{}
| mvexpand movieStatistics{}.cast{}
| spath input=movieStatistics{}.cast{}
其作用是
spath
movieStatistics{}.cast{}
数组,然后执行 mvexpand
分隔数组的所有部分,然后 spath
不同的记录以获得每个数组元素的单独事件。
这是一个随处运行的示例:
| makeresults
| eval _raw="{\"title\":\"title1\",\"movieStatistics\":[{\"country\":\"US\",\"cast\":[{\"name\":\"Actor1\",\"age\":30,\"languages\":[\"English\",\"Spanish\"]},{\"name\":\"Actor2\",\"age\":48,\"languages\":[\"English\",\"Polish\",\"Spanish\"]}]}]}"
| spath movieStatistics{}.cast{}
| mvexpand movieStatistics{}.cast{}
| spath input=movieStatistics{}.cast{}
| fields - _raw _time
| table *