func (dm *DocumentMapping) validate(cache *registry.Cache) error { var err error if dm.DefaultAnalyzer != "" { _, err := cache.AnalyzerNamed(dm.DefaultAnalyzer) if err != nil { return err } } for _, property := range dm.Properties { err = property.validate(cache) if err != nil { return err } } for _, field := range dm.Fields { if field.Analyzer != "" { _, err = cache.AnalyzerNamed(field.Analyzer) if err != nil { return err } } if field.DateFormat != "" { _, err = cache.DateTimeParserNamed(field.DateFormat) if err != nil { return err } } switch field.Type { case "text", "datetime", "number", "boolean": default: return fmt.Errorf("unknown field type: '%s'", field.Type) } } return nil }