public ScoringFunction GetEffectiveScoringFunction() { switch (this.Type) { case AzureSearchScoringFunctionType.freshness: var fressnessParams = new FreshnessScoringParameters(TimeSpan.Parse(this.Freshness.BoostingDuration)); return(new FreshnessScoringFunction(this.FieldName, this.Boost, fressnessParams, this.Interpolation)); case AzureSearchScoringFunctionType.magnitude: var magnitudeParams = new MagnitudeScoringParameters(this.Magnitude.BoostingRangeStart, this.Magnitude.BoostingRangeEnd, this.Magnitude.ConstantBoostBeyondRange); return(new MagnitudeScoringFunction(this.FieldName, this.Boost, magnitudeParams, this.Interpolation)); case AzureSearchScoringFunctionType.distance: var distanceParams = new DistanceScoringParameters(this.Distance.ReferencePointParameter, this.Distance.BoostingDistance); return(new DistanceScoringFunction(this.FieldName, this.Boost, distanceParams, this.Interpolation)); case AzureSearchScoringFunctionType.tag: var tagParams = new TagScoringParameters(this.Tag.TagsParameter); return(new TagScoringFunction(this.FieldName, this.Boost, tagParams, this.Interpolation)); default: throw new NotSupportedException($"{this.Type}"); } }
internal FreshnessScoringFunction(FreshnessScoringParameters parameters, string type, string fieldName, double boost, ScoringFunctionInterpolation?interpolation) : base(type, fieldName, boost, interpolation) { Parameters = parameters; Type = "freshness"; }