Added localizedName for search function

This commit is contained in:
Joseph Milazzo 2021-03-12 13:23:21 -06:00
parent af35d8aad5
commit 24118da49c
3 changed files with 4 additions and 15 deletions

View File

@ -228,6 +228,7 @@ namespace API.Controllers
[HttpGet("search")] [HttpGet("search")]
public async Task<ActionResult<IEnumerable<SearchResultDto>>> Search(string queryString) public async Task<ActionResult<IEnumerable<SearchResultDto>>> Search(string queryString)
{ {
// TODO: Add indecies to DB for the searched fields
//NOTE: What about normalizing search query and only searching against normalizedname in Series? //NOTE: What about normalizing search query and only searching against normalizedname in Series?
// So One Punch would match One-Punch // So One Punch would match One-Punch
// This also means less indexes we need. // This also means less indexes we need.

View File

@ -1,7 +0,0 @@
namespace API.DTOs
{
public class SearchQueryDto
{
public string QueryString { get; init; }
}
}

View File

@ -80,20 +80,16 @@ namespace API.Data
public async Task<IEnumerable<SearchResultDto>> SearchSeries(int[] libraryIds, string searchQuery) public async Task<IEnumerable<SearchResultDto>> SearchSeries(int[] libraryIds, string searchQuery)
{ {
var sw = Stopwatch.StartNew(); return await _context.Series
var series = await _context.Series
.Where(s => libraryIds.Contains(s.LibraryId)) .Where(s => libraryIds.Contains(s.LibraryId))
.Where(s => EF.Functions.Like(s.Name, $"%{searchQuery}%") .Where(s => EF.Functions.Like(s.Name, $"%{searchQuery}%")
|| EF.Functions.Like(s.OriginalName, $"%{searchQuery}%")) || EF.Functions.Like(s.OriginalName, $"%{searchQuery}%")
|| EF.Functions.Like(s.LocalizedName, $"%{searchQuery}%"))
.Include(s => s.Library) // NOTE: Is there a way to do this faster? .Include(s => s.Library) // NOTE: Is there a way to do this faster?
.OrderBy(s => s.SortName) .OrderBy(s => s.SortName)
.AsNoTracking() .AsNoTracking()
.ProjectTo<SearchResultDto>(_mapper.ConfigurationProvider) .ProjectTo<SearchResultDto>(_mapper.ConfigurationProvider)
.ToListAsync(); .ToListAsync();
_logger.LogDebug("Processed SearchSeries in {ElapsedMilliseconds} milliseconds", sw.ElapsedMilliseconds);
return series;
} }
public async Task<IEnumerable<VolumeDto>> GetVolumesDtoAsync(int seriesId, int userId) public async Task<IEnumerable<VolumeDto>> GetVolumesDtoAsync(int seriesId, int userId)
@ -109,7 +105,6 @@ namespace API.Data
await AddVolumeModifiers(userId, volumes); await AddVolumeModifiers(userId, volumes);
return volumes; return volumes;
} }