From f229451c64ae1c2f1e1525edf827873c53c915be Mon Sep 17 00:00:00 2001 From: Domey Benjamin Date: Tue, 25 Feb 2025 12:16:07 +0000 Subject: [PATCH] chore: updated matches implementation for visual fetch --- services/main/Controllers/Content.cs | 2 +- .../Domains/Content/SearchContentService.cs | 22 ++++++------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/services/main/Controllers/Content.cs b/services/main/Controllers/Content.cs index 6da03be..a403534 100644 --- a/services/main/Controllers/Content.cs +++ b/services/main/Controllers/Content.cs @@ -294,7 +294,7 @@ public async Task VisualSearch( var matches = await _searchContentService.AskRekognitionForMatch(media); - if (matches == null) + if (matches == null || matches.Length == 0) { var res = HttpLib.GeneratePagination( [], diff --git a/services/main/Domains/Content/SearchContentService.cs b/services/main/Domains/Content/SearchContentService.cs index a6f8b23..1060a1e 100644 --- a/services/main/Domains/Content/SearchContentService.cs +++ b/services/main/Domains/Content/SearchContentService.cs @@ -54,17 +54,16 @@ GetContentsInput input FilterDefinitionBuilder builder = Builders.Filter; var filter = builder.Empty; + var validIds = matches.Where(match => ObjectId.TryParse(match, out _)).ToList(); - matches.ToList().ForEach(match => + if (validIds.Count > 0) { - if (!ObjectId.TryParse(match, out _)) - { - return; - } + var idFilter = Builders.Filter.Or( + validIds.ConvertAll(id => Builders.Filter.Eq(r => r.Id, id)) + ); + filter = idFilter; + } - var idFilter = builder.Eq(r => r.Id, match); - filter |= idFilter; - }); if (filter == builder.Empty) { @@ -100,14 +99,7 @@ public async Task> VisualSearch( GetContentsInput input ) { - FilterDefinitionBuilder builder = Builders.Filter; - var filter = filterLogicForVisualSearch(matches, input); - if (filter == builder.Empty) - { - return []; - } - var contents = await _contentsCollection .Find(filter)