如何将一个搜索结果传递给splunk中另一个搜索的IN子句?

时间:2018-05-15 12:35:28

标签: splunk splunk-query

我运行一个查询并以表格的形式获取custId列表。如何将此结果传递给IN子句中的另一个搜索查询。

例如:

搜索1:index = *"成功登录" | table custID  这给了我一个列custID的表。

然后我必须运行

index = *"" |发送的邮件,其中custID IN(搜索1)|表CustID,_time

2 个答案:

答案 0 :(得分:0)

使用子搜索。您必须尝试使用​​format选项才能使输出与IN兼容。

index=* "mail sent by"|where custID IN ([search index=* "successful login for"|fields custID | format]) |table CustID,_time

如果您无法正确输出format,则可能必须使用不带IN的旧方法。

index=* "mail sent by"|where [search index=* "successful login for"|fields custID | format] |table CustID,_time
BTW,index=*不是制作的好习惯。使用真实的索引名称可以获得更好的性能。

答案 1 :(得分:0)

index=myindex <mainSearchConditions>
custID IN (
   [search index=myindex <subsearchConditions> | table custID | dedup custID 
   | stats values(eval("\"".custID."\"")) as search delim="," | nomv search]
)