[PR #16121] Implement search providers #14534

Open
opened 2026-02-07 07:31:21 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/16121
Author: @Shadowghost
Created: 1/27/2026
Status: 🔄 Open

Base: masterHead: search-rebased


📝 Commits (1)

  • 771919c Implement search providers

📊 Changes

20 files changed (+1227 additions, -277 deletions)

View changed files

📝 Emby.Server.Implementations/ApplicationHost.cs (+5 -1)
📝 Emby.Server.Implementations/Dto/DtoService.cs (+55 -8)
Emby.Server.Implementations/Library/Search/SearchManager.cs (+456 -0)
Emby.Server.Implementations/Library/Search/SqlSearchProvider.cs (+120 -0)
Emby.Server.Implementations/Library/SearchEngine.cs (+0 -200)
📝 Emby.Server.Implementations/Library/UserDataManager.cs (+68 -0)
📝 Jellyfin.Api/Controllers/ItemsController.cs (+100 -9)
📝 Jellyfin.Api/Controllers/SearchController.cs (+8 -7)
📝 Jellyfin.Server.Implementations/Item/BaseItemRepository.cs (+34 -26)
📝 MediaBrowser.Controller/Entities/InternalItemsQuery.cs (+2 -0)
MediaBrowser.Controller/Library/IExternalSearchProvider.cs (+20 -0)
MediaBrowser.Controller/Library/IInternalSearchProvider.cs (+8 -0)
MediaBrowser.Controller/Library/ISearchEngine.cs (+0 -18)
MediaBrowser.Controller/Library/ISearchManager.cs (+47 -0)
MediaBrowser.Controller/Library/ISearchProvider.cs (+44 -0)
📝 MediaBrowser.Controller/Library/IUserDataManager.cs (+8 -0)
MediaBrowser.Controller/Library/SearchProviderQuery.cs (+52 -0)
MediaBrowser.Controller/Library/SearchResult.cs (+69 -0)
📝 MediaBrowser.Model/Configuration/MetadataPluginType.cs (+2 -1)
📝 src/Jellyfin.Database/Jellyfin.Database.Implementations/JellyfinQueryHelperExtensions.cs (+129 -7)

📄 Description

Extracts searching into internal and external search providers.

Example plugin for external search: https://github.com/Shadowghost/jellyfin-plugin-meilisearch

Changes

  • Extract existing search into SqlSearchprovider

Issues
Currently there are still some performance issues with mapping external search results to actual response objects because the userdata fetching is inefficient. Not much we can do about that without the changes from #16062


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/16121 **Author:** [@Shadowghost](https://github.com/Shadowghost) **Created:** 1/27/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `search-rebased` --- ### 📝 Commits (1) - [`771919c`](https://github.com/jellyfin/jellyfin/commit/771919c2e89ff34b93f4243b7b773e1bb9f5aead) Implement search providers ### 📊 Changes **20 files changed** (+1227 additions, -277 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/ApplicationHost.cs` (+5 -1) 📝 `Emby.Server.Implementations/Dto/DtoService.cs` (+55 -8) ➕ `Emby.Server.Implementations/Library/Search/SearchManager.cs` (+456 -0) ➕ `Emby.Server.Implementations/Library/Search/SqlSearchProvider.cs` (+120 -0) ➖ `Emby.Server.Implementations/Library/SearchEngine.cs` (+0 -200) 📝 `Emby.Server.Implementations/Library/UserDataManager.cs` (+68 -0) 📝 `Jellyfin.Api/Controllers/ItemsController.cs` (+100 -9) 📝 `Jellyfin.Api/Controllers/SearchController.cs` (+8 -7) 📝 `Jellyfin.Server.Implementations/Item/BaseItemRepository.cs` (+34 -26) 📝 `MediaBrowser.Controller/Entities/InternalItemsQuery.cs` (+2 -0) ➕ `MediaBrowser.Controller/Library/IExternalSearchProvider.cs` (+20 -0) ➕ `MediaBrowser.Controller/Library/IInternalSearchProvider.cs` (+8 -0) ➖ `MediaBrowser.Controller/Library/ISearchEngine.cs` (+0 -18) ➕ `MediaBrowser.Controller/Library/ISearchManager.cs` (+47 -0) ➕ `MediaBrowser.Controller/Library/ISearchProvider.cs` (+44 -0) 📝 `MediaBrowser.Controller/Library/IUserDataManager.cs` (+8 -0) ➕ `MediaBrowser.Controller/Library/SearchProviderQuery.cs` (+52 -0) ➕ `MediaBrowser.Controller/Library/SearchResult.cs` (+69 -0) 📝 `MediaBrowser.Model/Configuration/MetadataPluginType.cs` (+2 -1) 📝 `src/Jellyfin.Database/Jellyfin.Database.Implementations/JellyfinQueryHelperExtensions.cs` (+129 -7) </details> ### 📄 Description Extracts searching into internal and external search providers. Example plugin for external search: https://github.com/Shadowghost/jellyfin-plugin-meilisearch **Changes** * Extract existing search into SqlSearchprovider **Issues** Currently there are still some performance issues with mapping external search results to actual response objects because the userdata fetching is inefficient. Not much we can do about that without the changes from #16062 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:31:21 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#14534