Result filtering on search (also known as Partial Search)

First take at refactoring search to allow selective results, rather than returning the whole thing.
This means having a hash with :filter_result => nil will behave differently from a hash where :filter_result was never set.  That sounds hard to debug.  Might be better to do if args[:filter_result].nil? and change the order of your code blocks.