There is a kind of dogma in my head:
- 1 method in order to allow user to have an ability to fetch **actual** resultset **at any moment** (perform **#search**)
- 1 method in order to use cached results collection of the query without performing unnecessary SQL job (#results)

Btw, this is a question of naming as well. 
`Search` - verb - I perform something.
`Results` - noun - I just get a results (does not matter executing the query on not)