1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // 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
- type Rescore struct {
- rescorer Rescorer
- windowSize *int
- defaultRescoreWindowSize *int
- }
- func NewRescore() *Rescore {
- return &Rescore{}
- }
- func (r *Rescore) WindowSize(windowSize int) *Rescore {
- r.windowSize = &windowSize
- return r
- }
- func (r *Rescore) IsEmpty() bool {
- return r.rescorer == nil
- }
- func (r *Rescore) Rescorer(rescorer Rescorer) *Rescore {
- r.rescorer = rescorer
- return r
- }
- func (r *Rescore) Source() (interface{}, error) {
- source := make(map[string]interface{})
- if r.windowSize != nil {
- source["window_size"] = *r.windowSize
- } else if r.defaultRescoreWindowSize != nil {
- source["window_size"] = *r.defaultRescoreWindowSize
- }
- rescorerSrc, err := r.rescorer.Source()
- if err != nil {
- return nil, err
- }
- source[r.rescorer.Name()] = rescorerSrc
- return source, nil
- }
|