code: def _term_to_xapian_value(term, field_type):
      
      assert field_type in FIELD_TYPES
  
      def strf(dt):
          """
          Equivalent to datetime.datetime.strptime(dt, DATETIME_FORMAT)
          but accepts years below 1900 (see http://stackoverflow.com/q/10263956/931303)
          """
          return '%04d%02d%02d%02d%02d%02d' % (
              dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second)
  
      if field_type == 'boolean':
          assert isinstance(term, bool)
          if term:
              value = 't'
          else:
              value = 'f'
  
      elif field_type == 'integer':
          value = INTEGER_FORMAT % term
      elif field_type == 'float':
          value = xapian.sortable_serialise(term)
      elif field_type == 'date' or field_type == 'datetime':
          if field_type == 'date':
              # http://stackoverflow.com/a/1937636/931303 and comments
              term = datetime.datetime.combine(term, datetime.time())
          value = strf(term)
      else:  # field_type == 'text'
          value = _to_xapian_term(term)
  
      return value
docs: Converts a term to a serialized
      Xapian value based on the field_type.