code: func Cleanse(v interface{}) interface{} {
  	if v == nil {
  		return nil
  	}
  
  	va, vIsArr := v.([]interface{})
  	if vIsArr {
  		var a []interface{}
  		if va != nil {
  			a = []interface{}{}
  		}
  		for _, vav := range va {
  			a = append(a, Cleanse(vav))
  		}
  		return a
  	}
  
  	vm, vIsMap := v.(map[string]interface{})
  	if vIsMap && vm != nil {
  		m := map[string]interface{}{}
  		for vmk, vmv := range vm {
  			if vmk == "display_order" {
  				continue
  			}
  			m[vmk] = Cleanse(vmv)
  		}
  		return m
  	}
  
  	return v
  }
docs: // Cleanse returns a new mapping with bleve-mapping-ui entries
  // removed/cleansed so that it will pass bleve's strict parsing.