ものとしてはフォームオブジェクトと同じになる気がしますが、検索モデルを作ります。
検索モデルの各プロパティが入力項目に対応する感じですね。
当然各プロパティに対するヴァリデーションもこのモデル内に実装します。
単純な各プロパティ単体のものも、他のプロパティとの関係性のヴァリデーションも。
検索に関するビジネスロジックは結構長くなる傾向はあるかと思いますが、原則的にこのモデル内にすべて収めます。
ここまで書いた範囲ではフォームオブジェクトと実装上の違いがないように思いますが、あくまでビューを主体とした意識か、扱うリソースという考えでいるかの違いかなと思っています。
例えば標準検索と詳細検索のように、検索対象が共通なもののフォームが違う場合がありますが、この場合はフォームオブジェクトはあくまで検索フォームの表現とヴァリデーション、検索モデルは与えられたユーザ入力の検索パラメータのヴァリデーションと検索処理実行、という風に役割が分かれます。
検索モデルをサービスとして実装しても良いと思いますが、このあたりは好き好きかもしれません。
ransackはどちらの構成でも使えるような気がしますが、基本的に使いません。