Full text search?

Hi there,

I’m new to Jellyfin and I find it awesome… But I can’t find how to search for movies using a string that would be in the description of the movies. Only strings in the titles are found.

This is so basic that I can’t imagine the feature is missing.

Is it, or did I miss something ?

We don’t currently support this feature. It will probably be added after the database is restructured.

Hi Niels,

Is there an approx. ETA for the restructuring of the database ? Is there any chance, if I provide a patch with a quick fix for the current database structure, to have it released soon ?

I badly need this feature :wink:

We’ve started migrating the database in 10.6 and are moving slowly towards 100% Entity Framework. AFAIK the 10.8 release will migrate the library part to EF, with that we could probably add a sane search method. I think the servers devs are open for a better search in the current library database but I’m really a part of that team. You’re best bet is to ask in our Matrix channels or create a GitHub issue/discussion to discuss this if you’re willing to contribute it.

Do note that our main focus right now is releasing 10.7 so responses might be a bit slow.

I’ve given up with contributing Jellyfin code for now. But I’ve found that hacking the database would provide an easy temporary solution. It is the ugliest hack possible, but it allows to search for keywords (one at a time) in the overview of movies, which is a feature I’ve badly missed until now. It also allows to search for genres, production year and studio.

The trick is to fill the “CleanName” field of every movie entry with the information we want to be searchable. It runs a bash script periodically to stop Jellyfin, update the DB then restart Jellyfin. The bash script runs a PHP script, but It must be possible to do it all with bash.

The recipe, for a Docker install:

  • Backup /config/data/library.db

  • Make sure that module Sqlite3 for PHP is enabled on the server

  • Create file hack-jellyfin-db.php somewhere on the server with the following content:

    $db = new SQLite3('real/path/to/library.db');
    $db->exec("update TypedBaseItems set CleanName = lower(Name) || ' ' || lower(Overview) where type = 'MediaBrowser.Controller.Entities.Movies.Movie' and Overview is not null");
    foreach (array('Genres', 'Studios', 'ProductionYear') as $col) $db->exec("update TypedBaseItems set CleanName = CleanName || ' ' || lower($col) where type = 'MediaBrowser.Controller.Entities.Movies.Movie' and $col is not null");
  • Create file hack-jellyfin-db.sh (with “x” permission) somewhere on your server with the following content:

    /usr/local/bin/docker container stop --time=60 your-jellyfin-container
    php /path/to/hack-jellyfin-db.php
    /usr/local/bin/docker container start your-jellyfin-container
  • Use cron to run hack-jellyfin-db.sh periodically, for example at 5 AM every day.