Ejemplo n.º 1
0
        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}");
            }
        }
Ejemplo n.º 2
0
 internal FreshnessScoringFunction(FreshnessScoringParameters parameters, string type, string fieldName, double boost, ScoringFunctionInterpolation?interpolation) : base(type, fieldName, boost, interpolation)
 {
     Parameters = parameters;
     Type       = "freshness";
 }