Я бы создал как вы и предлагаете отдельный класс Search, унаследованный от класса Model и реализовал бы логику поиска в нем.
Как вариант вы можете вынести логику в Trait и подключить ее в классах AuthorSearch и ArticleSearch, которые наследуются от соответствующих моделей AR