From 93379e2652e9d150bf8b89d819fc011d17474872 Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 13 Nov 2024 09:13:50 -0600 Subject: [PATCH 1/9] fixed spacing. added index set up for testing RankingScoreThreshold --- tests/Meilisearch.Tests/IndexFixture.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/Meilisearch.Tests/IndexFixture.cs b/tests/Meilisearch.Tests/IndexFixture.cs index f0499c17..485a3d79 100644 --- a/tests/Meilisearch.Tests/IndexFixture.cs +++ b/tests/Meilisearch.Tests/IndexFixture.cs @@ -124,6 +124,7 @@ public async Task SetUpIndexForNestedSearch(string indexUid) return index; } + public async Task SetUpIndexForDistinctProductsSearch(string indexUid) { var index = DefaultClient.Index(indexUid); @@ -156,6 +157,22 @@ public async Task SetUpIndexForDistinctProductsSearch(string indexUid) return index; } + public async Task SetUpIndexForRankingScoreThreshold(string indexUid) + { + var index = DefaultClient.Index(indexUid); + var movies = await JsonFileReader.ReadAsync>(Datasets.MoviesWithInfoJsonPath); + var task = await index.AddDocumentsAsync(movies); + + // Check the documents have been added + var finishedTask = await index.WaitForTaskAsync(task.TaskUid); + if (finishedTask.Status != TaskInfoStatus.Succeeded) + { + throw new Exception("The documents were not added during SetUpIndexForRankingScoreThreshold. Impossible to run the tests."); + } + + return index; + } + public async Task DeleteAllIndexes() { var indexes = await DefaultClient.GetAllIndexesAsync(); From 1e49c13e2dad494a65580dc77f887685dbe32946 Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 13 Nov 2024 09:14:08 -0600 Subject: [PATCH 2/9] added missing space --- tests/Meilisearch.Tests/SearchTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Meilisearch.Tests/SearchTests.cs b/tests/Meilisearch.Tests/SearchTests.cs index 4365a7cf..ef57fa24 100644 --- a/tests/Meilisearch.Tests/SearchTests.cs +++ b/tests/Meilisearch.Tests/SearchTests.cs @@ -527,6 +527,7 @@ public async Task CustomSearchProductsWithoutDistinct() var products = await _productIndexForDistinct.SearchAsync("", searchQuery); products.Hits.Count.Should().Be(14); } + [Fact] public async Task CustomSearchProductsWithDistinct() { From 463144130e1c51c26e664bf85fdd2cb483bf641f Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 13 Nov 2024 09:14:47 -0600 Subject: [PATCH 3/9] added CustomSearchWithRankingScoreThreshold test. --- tests/Meilisearch.Tests/SearchTests.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/Meilisearch.Tests/SearchTests.cs b/tests/Meilisearch.Tests/SearchTests.cs index ef57fa24..580ac12e 100644 --- a/tests/Meilisearch.Tests/SearchTests.cs +++ b/tests/Meilisearch.Tests/SearchTests.cs @@ -14,6 +14,7 @@ public abstract class SearchTests : IAsyncLifetime where TFixture : In private Index _indexForFaceting; private Index _indexWithIntId; private Index _productIndexForDistinct; + private Index _indexForRankingScoreThreshold; private readonly TFixture _fixture; @@ -30,6 +31,7 @@ public async Task InitializeAsync() _indexWithIntId = await _fixture.SetUpBasicIndexWithIntId("IndexWithIntId-SearchTests"); _nestedIndex = await _fixture.SetUpIndexForNestedSearch("IndexForNestedDocs-SearchTests"); _productIndexForDistinct = await _fixture.SetUpIndexForDistinctProductsSearch("IndexForDistinctProducts-SearchTests"); + _indexForRankingScoreThreshold = await _fixture.SetUpIndexForRankingScoreThreshold("IndexForRankingThreshold-SearchTests"); } public Task DisposeAsync() => Task.CompletedTask; @@ -538,5 +540,19 @@ public async Task CustomSearchProductsWithDistinct() var products = await _productIndexForDistinct.SearchAsync("", searchQuery); products.Hits.Count.Should().Be(6); } + + [Fact] + public async Task CustomSearchWithRankingScoreThreshold() + { + var searchQuery = new SearchQuery { }; + var movies = await _indexForRankingScoreThreshold.SearchAsync("a wizard movie", searchQuery); + movies.Hits.Count.Should().Be(4); + + searchQuery.RankingScoreThreshold = 0.5M; + movies = await _indexForRankingScoreThreshold.SearchAsync("a wizard movie", searchQuery); + movies.Hits.Count.Should().Be(1); + movies.Hits.First().Id.Should().Be("13"); + movies.Hits.First().Name.Should().Be("Harry Potter"); + } } } From 3e58dfe76dd1064fcc28e936ed93f10518f14bc4 Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 13 Nov 2024 09:15:20 -0600 Subject: [PATCH 4/9] added property RankingScoreThreshold for setting rankingScoreThreshold value --- src/Meilisearch/SearchQuery.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Meilisearch/SearchQuery.cs b/src/Meilisearch/SearchQuery.cs index 27186a4a..168d6d88 100644 --- a/src/Meilisearch/SearchQuery.cs +++ b/src/Meilisearch/SearchQuery.cs @@ -142,5 +142,11 @@ public class SearchQuery /// [JsonPropertyName("distinct")] public string Distinct { get; set; } + + /// + /// Gets or sets rankingScoreThreshold, a number between 0.0 and 1.0. + /// + [JsonPropertyName("rankingScoreThreshold")] + public decimal RankingScoreThreshold { get; set; } } } From d5e7a9f0c3c14cfbeac705c94735828c2e3afdb7 Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 13 Nov 2024 09:15:58 -0600 Subject: [PATCH 5/9] Added code sample for utilizing RankingScoreThreshold property --- .code-samples.meilisearch.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index 0a788658..0bbd6340 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -782,3 +782,9 @@ distinct_attribute_guide_distinct_parameter_1: |- Distinct = "sku" }; await client.Index("products").SearchAsync("white shirt", params); +search_parameter_reference_ranking_score_threshold_1: |- + var params = new SearchQuery() + { + RankingScoreThreshold = 0.5M + }; + await client.Index("products").SearchAsync("white shirt", params); \ No newline at end of file From 77a0784025171982322d6ea8dfcadd6ac9d150fc Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 13 Nov 2024 13:46:48 -0600 Subject: [PATCH 6/9] c# code sample more accurately reflects curl example --- .code-samples.meilisearch.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index 0bbd6340..f4175f68 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -785,6 +785,6 @@ distinct_attribute_guide_distinct_parameter_1: |- search_parameter_reference_ranking_score_threshold_1: |- var params = new SearchQuery() { - RankingScoreThreshold = 0.5M + RankingScoreThreshold = 0.2M }; - await client.Index("products").SearchAsync("white shirt", params); \ No newline at end of file + await client.Index("INDEX_NAME").SearchAsync("badman", params); \ No newline at end of file From 9a5328da2f70266caa4738445acafa9146500638 Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Thu, 14 Nov 2024 07:58:33 -0600 Subject: [PATCH 7/9] new line for linter --- .code-samples.meilisearch.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index f4175f68..dd5aa574 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -787,4 +787,5 @@ search_parameter_reference_ranking_score_threshold_1: |- { RankingScoreThreshold = 0.2M }; - await client.Index("INDEX_NAME").SearchAsync("badman", params); \ No newline at end of file + await client.Index("INDEX_NAME").SearchAsync("badman", params); + \ No newline at end of file From 7cff6dd16f34bc351424ea79923c6afecd93bab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9mentine?= Date: Wed, 27 Nov 2024 11:18:24 +0100 Subject: [PATCH 8/9] Update .code-samples.meilisearch.yaml --- .code-samples.meilisearch.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index dd5aa574..f4175f68 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -787,5 +787,4 @@ search_parameter_reference_ranking_score_threshold_1: |- { RankingScoreThreshold = 0.2M }; - await client.Index("INDEX_NAME").SearchAsync("badman", params); - \ No newline at end of file + await client.Index("INDEX_NAME").SearchAsync("badman", params); \ No newline at end of file From 80eea39ecb1835d596b0b60a5596949c17124a8f Mon Sep 17 00:00:00 2001 From: Dan Fehrenbach Date: Wed, 27 Nov 2024 10:13:11 -0600 Subject: [PATCH 9/9] new line, remove trailing whitespace --- .code-samples.meilisearch.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index f4175f68..55f2dc2a 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -787,4 +787,4 @@ search_parameter_reference_ranking_score_threshold_1: |- { RankingScoreThreshold = 0.2M }; - await client.Index("INDEX_NAME").SearchAsync("badman", params); \ No newline at end of file + await client.Index("INDEX_NAME").SearchAsync("badman", params);