If all of your "search queries" are the same (or even substantially similar), this could be a very inefficient search.
If they are all the same:
search query (check.status = 2 OR check.status=0)
| stats count as occurrences min(timestamp) as minTime by id, client.name, client.address check.status
| where occurrences > 2
| eval first_time=if(check.status==2,minTime,null())
| eval recov_time=if(check.status==0,minTime,null())
| stats first(first_time) as first_time first(recov_time) as recov_time by id, client.name, client.address check.status
| eval total_time = recov_time - first_time
| rename total_time as "Total Time (in secs.)" client.cluster as "Cluster Name" client.name as "Host Name" client.address as "Host Address"
| eval "Recover Time"=strftime(recov_time,"%Y/%m/%d %H:%M:%S")
| eval "First Seen Time"=strftime(first_time,"%Y/%m/%d %H:%M:%S")
| table "Cluster Name","Host Name", "Host Address", "First Seen Time","Recover Time","Total Time (in secs.)",id, occurrences
... View more