You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
980 B
42 lines
980 B
// Copyright 2012-present Oliver Eilhard. All rights reserved.
|
|
// Use of this source code is governed by a MIT-license.
|
|
// See http://olivere.mit-license.org/license.txt for details.
|
|
|
|
package elastic
|
|
|
|
// DocvalueField represents a docvalue field, its name and
|
|
// its format (optional).
|
|
type DocvalueField struct {
|
|
Field string
|
|
Format string
|
|
}
|
|
|
|
// Source serializes the DocvalueField into JSON.
|
|
func (d DocvalueField) Source() (interface{}, error) {
|
|
if d.Format == "" {
|
|
return d.Field, nil
|
|
}
|
|
return map[string]interface{}{
|
|
"field": d.Field,
|
|
"format": d.Format,
|
|
}, nil
|
|
}
|
|
|
|
// DocvalueFields is a slice of DocvalueField instances.
|
|
type DocvalueFields []DocvalueField
|
|
|
|
// Source serializes the DocvalueFields into JSON.
|
|
func (d DocvalueFields) Source() (interface{}, error) {
|
|
if d == nil {
|
|
return nil, nil
|
|
}
|
|
v := make([]interface{}, 0)
|
|
for _, f := range d {
|
|
src, err := f.Source()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
v = append(v, src)
|
|
}
|
|
return v, nil
|
|
}
|
|
|