From 1da3ac231054ea70510bac562e837fbe1616acad Mon Sep 17 00:00:00 2001 From: Adam Soos Date: Mon, 29 Jun 2026 12:10:32 +0200 Subject: [PATCH 1/2] BX-72772: Add macthing field boost bias and scoring method --- .../Models/RecordSimilarityFieldInfo.cs | 22 +++++++++++++++---- .../RecordSimilarityFieldScoringMethod.cs | 8 +++++++ .../Models/RecordSimilarityProperties.cs | 20 ++++++++++++++--- 3 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 rosette_api/Models/RecordSimilarityFieldScoringMethod.cs diff --git a/rosette_api/Models/RecordSimilarityFieldInfo.cs b/rosette_api/Models/RecordSimilarityFieldInfo.cs index 08a290a..3353116 100644 --- a/rosette_api/Models/RecordSimilarityFieldInfo.cs +++ b/rosette_api/Models/RecordSimilarityFieldInfo.cs @@ -13,7 +13,13 @@ public class RecordSimilarityFieldInfo /// [JsonPropertyName("type")] public string Type { get; set; } - + + /// + /// Gets or sets the record's field scoring method + /// + [JsonPropertyName("scoringMethod")] + public RecordSimilarityFieldScoringMethod? ScoringMethod { get; set; } + /// /// Gets or sets the record's field weight /// @@ -35,13 +41,19 @@ public RecordSimilarityFieldInfo() { } /// Full constructor /// /// The record's field type + /// The record's field scoring method /// The record's field weight /// The record's field scoreIfNull - public RecordSimilarityFieldInfo(string type, double? weight, double? scoreIfNull) + public RecordSimilarityFieldInfo( + string type, + RecordSimilarityFieldScoringMethod? fieldScoringMethod, + double? weight, + double? scoreIfNull) { this.Type = type; this.Weight = weight; this.ScoreIfNull = scoreIfNull; + this.ScoringMethod = fieldScoringMethod; } @@ -58,7 +70,8 @@ public override bool Equals(object obj) List conditions = new List() { this.Type == other.Type, this.Weight == other.Weight, - this.ScoreIfNull == other.ScoreIfNull + this.ScoreIfNull == other.ScoreIfNull, + this.ScoringMethod == other.ScoringMethod }; return conditions.All(condition => condition); } @@ -78,7 +91,8 @@ public override int GetHashCode() int h0 = this.Type.GetHashCode(); int h1 = this.Weight != null ? this.Weight.GetHashCode() : 1; int h2 = this.ScoreIfNull != null ? this.ScoreIfNull.GetHashCode() : 1; - return h0 ^ h1 ^ h2; + int h3 = this.ScoringMethod != null ? this.ScoringMethod.GetHashCode() : 1; + return h0 ^ h1 ^ h2 ^ h3; } /// diff --git a/rosette_api/Models/RecordSimilarityFieldScoringMethod.cs b/rosette_api/Models/RecordSimilarityFieldScoringMethod.cs new file mode 100644 index 0000000..fcdbfa7 --- /dev/null +++ b/rosette_api/Models/RecordSimilarityFieldScoringMethod.cs @@ -0,0 +1,8 @@ +namespace Rosette.Api.Client.Models; + +public enum RecordSimilarityFieldScoringMethod +{ + STANDARD, + ONLY_INCREASE, + ONLY_DECREASE, +} \ No newline at end of file diff --git a/rosette_api/Models/RecordSimilarityProperties.cs b/rosette_api/Models/RecordSimilarityProperties.cs index 4e5033c..640f776 100644 --- a/rosette_api/Models/RecordSimilarityProperties.cs +++ b/rosette_api/Models/RecordSimilarityProperties.cs @@ -11,6 +11,11 @@ public class RecordSimilarityProperties [JsonPropertyName("threshold")] public double? Threshold { get; set; } = 0.0; + /// + /// Gets or sets the record similarity request's matching fields boost bias + /// + [JsonPropertyName("matchingFieldsBoostBias")] + public double? MatchingFieldsBoostBias { get; set; } /// /// Gets or sets the record similarity request's include explain info parameter @@ -51,12 +56,19 @@ public RecordSimilarityProperties(bool includeExplainInfo) /// Full constructor /// /// The score threshold + /// The matching fields boost bias /// The include explain info parameter /// A map of string parameter names to string parameter values /// The parameter universe to use - public RecordSimilarityProperties(double threshold, bool includeExplainInfo, Dictionary parameters, string parameterUniverse) + public RecordSimilarityProperties( + double threshold, + double matchingFieldsBoostBias, + bool includeExplainInfo, + Dictionary parameters, + string parameterUniverse) { this.Threshold = threshold; + this.MatchingFieldsBoostBias = matchingFieldsBoostBias; this.IncludeExplainInfo = includeExplainInfo; this.Parameters = parameters; this.ParameterUniverse = parameterUniverse; @@ -77,7 +89,8 @@ public override bool Equals(object obj) this.IncludeExplainInfo == other.IncludeExplainInfo, this.Parameters != null && other.Parameters != null ? Utilities.DictionaryEquals(this.Parameters, other.Parameters) : this.Parameters == other.Parameters, - this.ParameterUniverse == other.ParameterUniverse + this.ParameterUniverse == other.ParameterUniverse, + this.MatchingFieldsBoostBias == other.MatchingFieldsBoostBias }; return conditions.All(condition => condition); } @@ -97,7 +110,8 @@ public override int GetHashCode() int h1 = this.IncludeExplainInfo.GetHashCode(); int h2 = this.Parameters != null ? this.Parameters.GetHashCode() : 1; int h3 = this.ParameterUniverse != null ? this.ParameterUniverse.GetHashCode() : 1; - return h0 ^ h1 ^ h2 ^ h3; + int h4 = this.MatchingFieldsBoostBias != null ? this.MatchingFieldsBoostBias.GetHashCode() : 1; + return h0 ^ h1 ^ h2 ^ h3 ^ h4; } /// From 8677b6336fc8391ba6f9d7ec8a448537541adf64 Mon Sep 17 00:00:00 2001 From: Adam Soos Date: Mon, 29 Jun 2026 12:55:43 +0200 Subject: [PATCH 2/2] BX-72772: update readme --- README.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b1048b6..6e92222 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,5 @@ - - - - - Babel Street Logo - + + Babel Street Logo # Analytics by Babel Street @@ -178,13 +174,13 @@ From the root directory of the source tree, `dotnet build`. Note that .NET 10 S From the root directory of the source tree, `dotnet test tests/tests.csproj` #### Examples -View small example programs for each Rosette endpoint +View small example programs for each Analytics endpoint in the [examples](https://github.com/rosette-api/dotnet/tree/master/examples) directory. #### Documentation & Support - [Binding API](https://rosette-api.github.io/dotnet) -- [Analytics Platform API](http://documentation.babelstreet.com/analytics) +- [Analytics Platform API](https://documentation.babelstreet.com/analytics) - [Binding Release Notes](https://github.com/rosette-api/dotnet/wiki/Release-Notes) -- [Analytics Platform Release Notes](https://docs.babelstreet.com/r/Hosted-Services-Release-Notes) +- [Analytics Platform Release Notes](https://docs.babelstreet.com/Release/en/rosette-cloud.html) - [Support](https://babelstreet.my.site.com/support/s/contactsupport) - [Binding License: Apache 2.0](LICENSE.txt)