From f2bba64ee51327567971129601c09e008b4359ca Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Wed, 6 Aug 2025 14:40:12 +0800 Subject: [PATCH] :lipstick: Optimize discovery search --- DysonNetwork.Sphere/Discovery/DiscoveryService.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/DysonNetwork.Sphere/Discovery/DiscoveryService.cs b/DysonNetwork.Sphere/Discovery/DiscoveryService.cs index ccbc15f..29b8aec 100644 --- a/DysonNetwork.Sphere/Discovery/DiscoveryService.cs +++ b/DysonNetwork.Sphere/Discovery/DiscoveryService.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; + namespace DysonNetwork.Sphere.Discovery; public class DiscoveryService(AppDatabase appDatabase) @@ -16,10 +17,10 @@ public class DiscoveryService(AppDatabase appDatabase) .Where(r => r.IsCommunity); if (!string.IsNullOrEmpty(query)) - { - realmsQuery = realmsQuery.Where(r => r.Name.Contains(query) || r.Description.Contains(query)); - } - + realmsQuery = realmsQuery.Where(r => + EF.Functions.ILike(r.Name, $"%{query}%") || + EF.Functions.ILike(r.Description, $"%{query}%") + ); if (tags is { Count: > 0 }) realmsQuery = realmsQuery.Where(r => r.RealmTags.Any(rt => tags.Contains(rt.Tag.Name))); if (randomizer) @@ -29,4 +30,4 @@ public class DiscoveryService(AppDatabase appDatabase) return realmsQuery.Skip(offset).Take(take).ToListAsync(); } -} +} \ No newline at end of file