func (im *IndexMapping) mapDocument(doc *document.Document, data interface{}) error { // see if the top level object is a byte array, and possibly run through conveter byteArrayData, ok := data.([]byte) if ok { byteArrayConverterConstructor := registry.ByteArrayConverterByName(im.ByteArrayConverter) if byteArrayConverterConstructor != nil { byteArrayConverter, err := byteArrayConverterConstructor(nil, nil) if err == nil { convertedData, err := byteArrayConverter.Convert(byteArrayData) if err != nil { return err } data = convertedData } else { log.Printf("error creating byte array converter: %v", err) } } else { log.Printf("no byte array converter named: %s", im.ByteArrayConverter) } } docType := im.determineType(data) docMapping := im.mappingForType(docType) walkContext := im.newWalkContext(doc, docMapping) docMapping.walkDocument(data, []string{}, []uint64{}, walkContext) // see if the _all field was disabled allMapping := docMapping.documentMappingForPath("_all") if allMapping == nil || (allMapping.Enabled != false) { field := document.NewCompositeFieldWithIndexingOptions("_all", true, []string{}, walkContext.excludedFromAll, document.IndexField|document.IncludeTermVectors) doc.AddField(field) } return nil }
func (im *IndexMapping) mapDocument(doc *document.Document, data interface{}) error { docType := im.determineType(data) docMapping := im.mappingForType(docType) walkContext := im.newWalkContext(doc, docMapping) if docMapping.Enabled { docMapping.walkDocument(data, []string{}, []uint64{}, walkContext) // see if the _all field was disabled allMapping := docMapping.documentMappingForPath("_all") if allMapping == nil || (allMapping.Enabled != false) { field := document.NewCompositeFieldWithIndexingOptions("_all", true, []string{}, walkContext.excludedFromAll, document.IndexField|document.IncludeTermVectors) doc.AddField(field) } } return nil }