summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/olivere/elastic/rescore.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/olivere/elastic/rescore.go')
-rw-r--r--vendor/github.com/olivere/elastic/rescore.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/vendor/github.com/olivere/elastic/rescore.go b/vendor/github.com/olivere/elastic/rescore.go
new file mode 100644
index 000000000..9b7eaee1d
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/rescore.go
@@ -0,0 +1,44 @@
+// 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
+}