My approach would be similar to Rahul's code above, though I think certain things would need to be tweaked from that.
Mainly, the operator would need to be "AND", not "OR" -- since "OR" would find every result with either "Widget1" or "Widget3" in it…