You can search across multiple indices (= model indices, eg. "articles" and "comments") with the Tire lower-level DSL. You can extract that into a separate class, search across the models and merge results manually by score, etc.