diff options
| author | Claus Vium <cvium@users.noreply.github.com> | 2023-07-03 08:51:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-03 08:51:46 +0200 |
| commit | 10fde0a2c12b3992792ead68d27e621f4999a6b8 (patch) | |
| tree | 8c854b82f9724b055774fef394a0760a6b19199d /Emby.Server.Implementations/Data/SqliteItemRepository.cs | |
| parent | 52252fcd554a7ac1105374ca6d1b440787820f0a (diff) | |
| parent | f0376cdad9626f5ae0b41a5f54e765fc10dffa05 (diff) | |
Merge pull request #8914 from bradbeattie/augmented-tag-searching
Augment tag searching to consider individual ItemValues instead of the delimited tags field
Diffstat (limited to 'Emby.Server.Implementations/Data/SqliteItemRepository.cs')
| -rw-r--r-- | Emby.Server.Implementations/Data/SqliteItemRepository.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index ca8f605a0..73ec856fc 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -2452,7 +2452,9 @@ namespace Emby.Server.Implementations.Data if (query.SearchTerm.Length > 1) { builder.Append("+ ((CleanName like @SearchTermContains or (OriginalTitle not null and OriginalTitle like @SearchTermContains)) * 10)"); - builder.Append("+ ((Tags not null and Tags like @SearchTermContains) * 5)"); + builder.Append("+ (SELECT COUNT(1) * 1 from ItemValues where ItemId=Guid and CleanValue like @SearchTermContains)"); + builder.Append("+ (SELECT COUNT(1) * 2 from ItemValues where ItemId=Guid and CleanValue like @SearchTermStartsWith)"); + builder.Append("+ (SELECT COUNT(1) * 10 from ItemValues where ItemId=Guid and CleanValue like @SearchTermEquals)"); } builder.Append(") as SearchScore"); @@ -2483,6 +2485,11 @@ namespace Emby.Server.Implementations.Data { statement.TryBind("@SearchTermContains", "%" + searchTerm + "%"); } + + if (commandText.Contains("@SearchTermEquals", StringComparison.OrdinalIgnoreCase)) + { + statement.TryBind("@SearchTermEquals", searchTerm); + } } private void BindSimilarParams(InternalItemsQuery query, IStatement statement) |
