Splunk Search

subquery not returning results

surekhasplunk
Communicator

Hi,

I have two queries one from 1st_index and another from 2nd_index both are separately are giving correct outputs but when i combine them i get 0 results.

index="1st_index" 
| eval name=upper(name) 
| search name=ABCD  
|search  index="2nd_index" 
| fillnull value="Other" 
| mvexpand infrastructure{}.name 
| rename infra{}.name as "Infrastrucure Name" name as Nom infra{}.type as type 
| table "Infrastrucure Name" Nom type 
| mvexpand type 
| eval Nom=upper(Nom)

I want the name from 1st output to be the searched in the second subquery.
And at the end show few columns from 1st query and few from 2nd query.

Tags (3)
0 Karma
1 Solution

richgalloway
SplunkTrust
SplunkTrust

You don't have a subsearch in your query. The search command is processing the results from 1st_index. Since only events with index=1st_index have been fetched, a search for index=2nd_index will return nothing.

A subsearch must be enclosed in square brackets. Something like this:

index="1st_index" 
| eval name=upper(name) 
| search name=ABCD  
|[ search  index="2nd_index" 
  | fillnull value="Other" 
  | mvexpand infrastructure{}.name 
  | rename infra{}.name as "Infrastrucure Name" name as Nom infra{}.type as type ]
| table "Infrastrucure Name" Nom type 
| mvexpand type 
| eval Nom=upper(Nom)

Before combining two searches, run what will be the subsearch by itself with | format appended. See if the results make sense when appended to what comes before the subsearch.

---
If this reply helps you, Karma would be appreciated.

View solution in original post

0 Karma

PavelP
Motivator

Hello @surekhasplunk,

please try infra_name instead of infra{}.name. By default splunk "cleans" all field names, all dots and brakets are replaced with "_".

0 Karma

richgalloway
SplunkTrust
SplunkTrust

You don't have a subsearch in your query. The search command is processing the results from 1st_index. Since only events with index=1st_index have been fetched, a search for index=2nd_index will return nothing.

A subsearch must be enclosed in square brackets. Something like this:

index="1st_index" 
| eval name=upper(name) 
| search name=ABCD  
|[ search  index="2nd_index" 
  | fillnull value="Other" 
  | mvexpand infrastructure{}.name 
  | rename infra{}.name as "Infrastrucure Name" name as Nom infra{}.type as type ]
| table "Infrastrucure Name" Nom type 
| mvexpand type 
| eval Nom=upper(Nom)

Before combining two searches, run what will be the subsearch by itself with | format appended. See if the results make sense when appended to what comes before the subsearch.

---
If this reply helps you, Karma would be appreciated.
0 Karma
Get Updates on the Splunk Community!

Stay Connected: Your Guide to May Tech Talks, Office Hours, and Webinars!

Take a look below to explore our upcoming Community Office Hours, Tech Talks, and Webinars this month. This ...

They're back! Join the SplunkTrust and MVP at .conf24

With our highly anticipated annual conference, .conf, comes the fez-wearers you can trust! The SplunkTrust, as ...

Enterprise Security Content Update (ESCU) | New Releases

Last month, the Splunk Threat Research Team had two releases of new security content via the Enterprise ...