You could make results a hash with keys equal to :description, :name, and :tag, or you could could define them as attributes on the search object with an attr_reader.  This could avoid the array access notation.  It also feels like you could use a null object to handle the nil method errors rather than the empty arrays.