summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/olivere/elastic/search_queries_fsq_score_funcs.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/olivere/elastic/search_queries_fsq_score_funcs.go')
-rw-r--r--vendor/github.com/olivere/elastic/search_queries_fsq_score_funcs.go567
1 files changed, 0 insertions, 567 deletions
diff --git a/vendor/github.com/olivere/elastic/search_queries_fsq_score_funcs.go b/vendor/github.com/olivere/elastic/search_queries_fsq_score_funcs.go
deleted file mode 100644
index 84cc52de9..000000000
--- a/vendor/github.com/olivere/elastic/search_queries_fsq_score_funcs.go
+++ /dev/null
@@ -1,567 +0,0 @@
-// 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
-
-import (
- "strings"
-)
-
-// ScoreFunction is used in combination with the Function Score Query.
-type ScoreFunction interface {
- Name() string
- GetWeight() *float64 // returns the weight which must be serialized at the level of FunctionScoreQuery
- Source() (interface{}, error)
-}
-
-// -- Exponential Decay --
-
-// ExponentialDecayFunction builds an exponential decay score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html
-// for details.
-type ExponentialDecayFunction struct {
- fieldName string
- origin interface{}
- scale interface{}
- decay *float64
- offset interface{}
- multiValueMode string
- weight *float64
-}
-
-// NewExponentialDecayFunction creates a new ExponentialDecayFunction.
-func NewExponentialDecayFunction() *ExponentialDecayFunction {
- return &ExponentialDecayFunction{}
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *ExponentialDecayFunction) Name() string {
- return "exp"
-}
-
-// FieldName specifies the name of the field to which this decay function is applied to.
-func (fn *ExponentialDecayFunction) FieldName(fieldName string) *ExponentialDecayFunction {
- fn.fieldName = fieldName
- return fn
-}
-
-// Origin defines the "central point" by which the decay function calculates
-// "distance".
-func (fn *ExponentialDecayFunction) Origin(origin interface{}) *ExponentialDecayFunction {
- fn.origin = origin
- return fn
-}
-
-// Scale defines the scale to be used with Decay.
-func (fn *ExponentialDecayFunction) Scale(scale interface{}) *ExponentialDecayFunction {
- fn.scale = scale
- return fn
-}
-
-// Decay defines how documents are scored at the distance given a Scale.
-// If no decay is defined, documents at the distance Scale will be scored 0.5.
-func (fn *ExponentialDecayFunction) Decay(decay float64) *ExponentialDecayFunction {
- fn.decay = &decay
- return fn
-}
-
-// Offset, if defined, computes the decay function only for a distance
-// greater than the defined offset.
-func (fn *ExponentialDecayFunction) Offset(offset interface{}) *ExponentialDecayFunction {
- fn.offset = offset
- return fn
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *ExponentialDecayFunction) Weight(weight float64) *ExponentialDecayFunction {
- fn.weight = &weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *ExponentialDecayFunction) GetWeight() *float64 {
- return fn.weight
-}
-
-// MultiValueMode specifies how the decay function should be calculated
-// on a field that has multiple values.
-// Valid modes are: min, max, avg, and sum.
-func (fn *ExponentialDecayFunction) MultiValueMode(mode string) *ExponentialDecayFunction {
- fn.multiValueMode = mode
- return fn
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *ExponentialDecayFunction) Source() (interface{}, error) {
- source := make(map[string]interface{})
- params := make(map[string]interface{})
- source[fn.fieldName] = params
- if fn.origin != nil {
- params["origin"] = fn.origin
- }
- params["scale"] = fn.scale
- if fn.decay != nil && *fn.decay > 0 {
- params["decay"] = *fn.decay
- }
- if fn.offset != nil {
- params["offset"] = fn.offset
- }
- if fn.multiValueMode != "" {
- source["multi_value_mode"] = fn.multiValueMode
- }
- return source, nil
-}
-
-// -- Gauss Decay --
-
-// GaussDecayFunction builds a gauss decay score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html
-// for details.
-type GaussDecayFunction struct {
- fieldName string
- origin interface{}
- scale interface{}
- decay *float64
- offset interface{}
- multiValueMode string
- weight *float64
-}
-
-// NewGaussDecayFunction returns a new GaussDecayFunction.
-func NewGaussDecayFunction() *GaussDecayFunction {
- return &GaussDecayFunction{}
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *GaussDecayFunction) Name() string {
- return "gauss"
-}
-
-// FieldName specifies the name of the field to which this decay function is applied to.
-func (fn *GaussDecayFunction) FieldName(fieldName string) *GaussDecayFunction {
- fn.fieldName = fieldName
- return fn
-}
-
-// Origin defines the "central point" by which the decay function calculates
-// "distance".
-func (fn *GaussDecayFunction) Origin(origin interface{}) *GaussDecayFunction {
- fn.origin = origin
- return fn
-}
-
-// Scale defines the scale to be used with Decay.
-func (fn *GaussDecayFunction) Scale(scale interface{}) *GaussDecayFunction {
- fn.scale = scale
- return fn
-}
-
-// Decay defines how documents are scored at the distance given a Scale.
-// If no decay is defined, documents at the distance Scale will be scored 0.5.
-func (fn *GaussDecayFunction) Decay(decay float64) *GaussDecayFunction {
- fn.decay = &decay
- return fn
-}
-
-// Offset, if defined, computes the decay function only for a distance
-// greater than the defined offset.
-func (fn *GaussDecayFunction) Offset(offset interface{}) *GaussDecayFunction {
- fn.offset = offset
- return fn
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *GaussDecayFunction) Weight(weight float64) *GaussDecayFunction {
- fn.weight = &weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *GaussDecayFunction) GetWeight() *float64 {
- return fn.weight
-}
-
-// MultiValueMode specifies how the decay function should be calculated
-// on a field that has multiple values.
-// Valid modes are: min, max, avg, and sum.
-func (fn *GaussDecayFunction) MultiValueMode(mode string) *GaussDecayFunction {
- fn.multiValueMode = mode
- return fn
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *GaussDecayFunction) Source() (interface{}, error) {
- source := make(map[string]interface{})
- params := make(map[string]interface{})
- source[fn.fieldName] = params
- if fn.origin != nil {
- params["origin"] = fn.origin
- }
- params["scale"] = fn.scale
- if fn.decay != nil && *fn.decay > 0 {
- params["decay"] = *fn.decay
- }
- if fn.offset != nil {
- params["offset"] = fn.offset
- }
- if fn.multiValueMode != "" {
- source["multi_value_mode"] = fn.multiValueMode
- }
- // Notice that the weight has to be serialized in FunctionScoreQuery.
- return source, nil
-}
-
-// -- Linear Decay --
-
-// LinearDecayFunction builds a linear decay score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html
-// for details.
-type LinearDecayFunction struct {
- fieldName string
- origin interface{}
- scale interface{}
- decay *float64
- offset interface{}
- multiValueMode string
- weight *float64
-}
-
-// NewLinearDecayFunction initializes and returns a new LinearDecayFunction.
-func NewLinearDecayFunction() *LinearDecayFunction {
- return &LinearDecayFunction{}
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *LinearDecayFunction) Name() string {
- return "linear"
-}
-
-// FieldName specifies the name of the field to which this decay function is applied to.
-func (fn *LinearDecayFunction) FieldName(fieldName string) *LinearDecayFunction {
- fn.fieldName = fieldName
- return fn
-}
-
-// Origin defines the "central point" by which the decay function calculates
-// "distance".
-func (fn *LinearDecayFunction) Origin(origin interface{}) *LinearDecayFunction {
- fn.origin = origin
- return fn
-}
-
-// Scale defines the scale to be used with Decay.
-func (fn *LinearDecayFunction) Scale(scale interface{}) *LinearDecayFunction {
- fn.scale = scale
- return fn
-}
-
-// Decay defines how documents are scored at the distance given a Scale.
-// If no decay is defined, documents at the distance Scale will be scored 0.5.
-func (fn *LinearDecayFunction) Decay(decay float64) *LinearDecayFunction {
- fn.decay = &decay
- return fn
-}
-
-// Offset, if defined, computes the decay function only for a distance
-// greater than the defined offset.
-func (fn *LinearDecayFunction) Offset(offset interface{}) *LinearDecayFunction {
- fn.offset = offset
- return fn
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *LinearDecayFunction) Weight(weight float64) *LinearDecayFunction {
- fn.weight = &weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *LinearDecayFunction) GetWeight() *float64 {
- return fn.weight
-}
-
-// MultiValueMode specifies how the decay function should be calculated
-// on a field that has multiple values.
-// Valid modes are: min, max, avg, and sum.
-func (fn *LinearDecayFunction) MultiValueMode(mode string) *LinearDecayFunction {
- fn.multiValueMode = mode
- return fn
-}
-
-// GetMultiValueMode returns how the decay function should be calculated
-// on a field that has multiple values.
-// Valid modes are: min, max, avg, and sum.
-func (fn *LinearDecayFunction) GetMultiValueMode() string {
- return fn.multiValueMode
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *LinearDecayFunction) Source() (interface{}, error) {
- source := make(map[string]interface{})
- params := make(map[string]interface{})
- source[fn.fieldName] = params
- if fn.origin != nil {
- params["origin"] = fn.origin
- }
- params["scale"] = fn.scale
- if fn.decay != nil && *fn.decay > 0 {
- params["decay"] = *fn.decay
- }
- if fn.offset != nil {
- params["offset"] = fn.offset
- }
- if fn.multiValueMode != "" {
- source["multi_value_mode"] = fn.multiValueMode
- }
- // Notice that the weight has to be serialized in FunctionScoreQuery.
- return source, nil
-}
-
-// -- Script --
-
-// ScriptFunction builds a script score function. It uses a script to
-// compute or influence the score of documents that match with the inner
-// query or filter.
-//
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_script_score
-// for details.
-type ScriptFunction struct {
- script *Script
- weight *float64
-}
-
-// NewScriptFunction initializes and returns a new ScriptFunction.
-func NewScriptFunction(script *Script) *ScriptFunction {
- return &ScriptFunction{
- script: script,
- }
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *ScriptFunction) Name() string {
- return "script_score"
-}
-
-// Script specifies the script to be executed.
-func (fn *ScriptFunction) Script(script *Script) *ScriptFunction {
- fn.script = script
- return fn
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *ScriptFunction) Weight(weight float64) *ScriptFunction {
- fn.weight = &weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *ScriptFunction) GetWeight() *float64 {
- return fn.weight
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *ScriptFunction) Source() (interface{}, error) {
- source := make(map[string]interface{})
- if fn.script != nil {
- src, err := fn.script.Source()
- if err != nil {
- return nil, err
- }
- source["script"] = src
- }
- // Notice that the weight has to be serialized in FunctionScoreQuery.
- return source, nil
-}
-
-// -- Field value factor --
-
-// FieldValueFactorFunction is a function score function that allows you
-// to use a field from a document to influence the score.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_field_value_factor.
-type FieldValueFactorFunction struct {
- field string
- factor *float64
- missing *float64
- weight *float64
- modifier string
-}
-
-// NewFieldValueFactorFunction initializes and returns a new FieldValueFactorFunction.
-func NewFieldValueFactorFunction() *FieldValueFactorFunction {
- return &FieldValueFactorFunction{}
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *FieldValueFactorFunction) Name() string {
- return "field_value_factor"
-}
-
-// Field is the field to be extracted from the document.
-func (fn *FieldValueFactorFunction) Field(field string) *FieldValueFactorFunction {
- fn.field = field
- return fn
-}
-
-// Factor is the (optional) factor to multiply the field with. If you do not
-// specify a factor, the default is 1.
-func (fn *FieldValueFactorFunction) Factor(factor float64) *FieldValueFactorFunction {
- fn.factor = &factor
- return fn
-}
-
-// Modifier to apply to the field value. It can be one of: none, log, log1p,
-// log2p, ln, ln1p, ln2p, square, sqrt, or reciprocal. Defaults to: none.
-func (fn *FieldValueFactorFunction) Modifier(modifier string) *FieldValueFactorFunction {
- fn.modifier = modifier
- return fn
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *FieldValueFactorFunction) Weight(weight float64) *FieldValueFactorFunction {
- fn.weight = &weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *FieldValueFactorFunction) GetWeight() *float64 {
- return fn.weight
-}
-
-// Missing is used if a document does not have that field.
-func (fn *FieldValueFactorFunction) Missing(missing float64) *FieldValueFactorFunction {
- fn.missing = &missing
- return fn
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *FieldValueFactorFunction) Source() (interface{}, error) {
- source := make(map[string]interface{})
- if fn.field != "" {
- source["field"] = fn.field
- }
- if fn.factor != nil {
- source["factor"] = *fn.factor
- }
- if fn.missing != nil {
- source["missing"] = *fn.missing
- }
- if fn.modifier != "" {
- source["modifier"] = strings.ToLower(fn.modifier)
- }
- // Notice that the weight has to be serialized in FunctionScoreQuery.
- return source, nil
-}
-
-// -- Weight Factor --
-
-// WeightFactorFunction builds a weight factor function that multiplies
-// the weight to the score.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_weight
-// for details.
-type WeightFactorFunction struct {
- weight float64
-}
-
-// NewWeightFactorFunction initializes and returns a new WeightFactorFunction.
-func NewWeightFactorFunction(weight float64) *WeightFactorFunction {
- return &WeightFactorFunction{weight: weight}
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *WeightFactorFunction) Name() string {
- return "weight"
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *WeightFactorFunction) Weight(weight float64) *WeightFactorFunction {
- fn.weight = weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *WeightFactorFunction) GetWeight() *float64 {
- return &fn.weight
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *WeightFactorFunction) Source() (interface{}, error) {
- // Notice that the weight has to be serialized in FunctionScoreQuery.
- return fn.weight, nil
-}
-
-// -- Random --
-
-// RandomFunction builds a random score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_random
-// for details.
-type RandomFunction struct {
- seed interface{}
- weight *float64
-}
-
-// NewRandomFunction initializes and returns a new RandomFunction.
-func NewRandomFunction() *RandomFunction {
- return &RandomFunction{}
-}
-
-// Name represents the JSON field name under which the output of Source
-// needs to be serialized by FunctionScoreQuery (see FunctionScoreQuery.Source).
-func (fn *RandomFunction) Name() string {
- return "random_score"
-}
-
-// Seed is documented in 1.6 as a numeric value. However, in the source code
-// of the Java client, it also accepts strings. So we accept both here, too.
-func (fn *RandomFunction) Seed(seed interface{}) *RandomFunction {
- fn.seed = seed
- return fn
-}
-
-// Weight adjusts the score of the score function.
-// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html#_using_function_score
-// for details.
-func (fn *RandomFunction) Weight(weight float64) *RandomFunction {
- fn.weight = &weight
- return fn
-}
-
-// GetWeight returns the adjusted score. It is part of the ScoreFunction interface.
-// Returns nil if weight is not specified.
-func (fn *RandomFunction) GetWeight() *float64 {
- return fn.weight
-}
-
-// Source returns the serializable JSON data of this score function.
-func (fn *RandomFunction) Source() (interface{}, error) {
- source := make(map[string]interface{})
- if fn.seed != nil {
- source["seed"] = fn.seed
- }
- // Notice that the weight has to be serialized in FunctionScoreQuery.
- return source, nil
-}