def operator_by_field_name(name)
      field = field_by_name(name)
      return [] if field.nil?
      return field.operators                                          if field.operators
      return ['=', '!=', '>', '<', '<=', '>=', '~', '!~', '^', '!^']  if field.virtual?
      return ['=', '!=']                                              if field.set? || field.uuid?
      return ['=', '>', '<', '<=', '>=', '!=', '^', '!^']             if field.numerical?
      return ['=', '!=', '~', '!~', '^', '!^']                        if field.textual?
      return ['=', '>', '<']                                          if field.temporal?
      raise ScopedSearch::QueryNotSupported, "Unsupported type '#{field.type.inspect}')' for field '#{name}'. This can be a result of a search definition problem."
    end
def operator_by_field_name(name)
      field = field_by_name(name)
      return [] if field.nil?
      return field.operators                                          if field.operators
      return ['=', '!=', '>', '<', '<=', '>=', '~', '!~', '^', '!^']  if field.virtual?
      return ['=', '!=']                                              if field.set? || field.uuid?
      return ['=', '>', '<', '<=', '>=', '!=', '^', '!^']             if field.numerical?
      return ['=', '!=', '~', '!~', '^', '!^']                        if field.textual?
      return ['=', '>', '<']                                          if field.temporal?
      raise ScopedSearch::QueryNotSupported, "Unsupported type '#{field.type.inspect}')' for field '#{name}'. This can be a result of a search definition problem."
    end
this method is used by the syntax auto completer to suggest operators.