Result filtering on search (also known as Partial Search)

First take at refactoring search to allow selective results, rather than returning the whole thing.
Minor nit-pick: It's more idomatic to do unless block.nil?