Its ok for this pull request, but it seems like a lot of sorting is done.  I see at minumum 2 sorts per search, not to mention adding to several collections.  I think it can be made more efficient by constructing a good sorted collection first and then adding to that once.