Jellyfin的快速全文搜索代理JellySearch
今年不在上海过年。以往回家都是自驾,这次女儿帮忙抢到了高铁票,明天出发。
简介
什么是 JellySearch ?
JellySearch
是一个快速的全文搜索代理,专为Jellyfin
设计,与大多数Jellyfin
客户端无缝集成。
工作原理
- 代理功能
JellySearch
作为 Jellyfin
的搜索代理,接收用户的搜索请求并将其转发到 Jellyfin
服务器。它充当中间层,优化搜索过程。
- 全文搜索
JellySearch
结合了 MeiliSearch
等搜索引擎技术,能够快速处理和索引媒体库中的内容,使用户能够进行高效的全文搜索。
- API 请求
用户通过 HTTP
请求向 JellySearch
发送搜索查询。JellySearch
接收到请求后,解析查询参数并构造适当的 API
请求,然后将其发送到 Jellyfin
。
- 结果返回
一旦 Jellyfin
返回搜索结果,JellySearch
会将结果整理并返回给用户。这个过程确保了用户体验的流畅性和快速性。
- 索引管理
JellySearch
可能会定期从 Jellyfin
更新索引,以确保搜索结果的准确性和时效性。这通常由 MeiliSearch
处理,确保数据的最新性。
优点
- 快速搜索:利用高效的全文搜索技术,能够迅速返回搜索结果,提升用户体验。
- 减轻负担:作为
Jellyfin
的搜索代理,JellySearch
减少了Jellyfin
服务器的负担,优化了资源使用。 - 简化查询:提供直观的接口,用户可以轻松输入搜索条件,快速找到所需的媒体内容。
- 实时更新:支持定期更新索引,确保搜索结果的准确性和时效性。
- 拼写错误容忍:搜索功能对拼写错误具有较强的容错能力,用户即使输入不完全正确的关键词,仍然能找到相关结果。
- 跨字段搜索:支持在多个字段中进行搜索,使得用户可以更全面地查找媒体内容,不局限于单一字段。
其他
当然,也不都是优点,也存在某些情况下无法正常工作,甚至存在一些安全性方面的问题,所以需要特别注意安全配置,以保护其媒体库的信息安全。
安装
在群晖上以 Docker 方式安装。
涉及到多个容器,采用 docker-compose
方式安装
nginx.conf
官方的示例使用的是 traefik
做反代,老苏不熟悉,同时也不想使用 https
协议,所以增加了 nginx
容器来做内部代理。
1 | worker_processes 1; |
其中 192.168.0.197
为群辉主机的 IP
,而 http://192.168.0.197:8096
则指向了 Jellyfin
服务
为什么不使用 http://jellyfin:8096
这种内部的表达方式,是因为 jellyfin
安装使用的网络模式是 host
,因此其实并不在同一个 docker
网络中
docker-compose.yml
将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
这里不涉及
jellyfin
的使用和硬解,有兴趣可以参考往期的文章。后台的AI
客服在搜索能力及信息整合上,还是表现不错的
- 如果你已经安装了
jellyfin
,可以去掉docker-compose.yml
中的jellyfin
部分 /config
应该与您的Jellyfin
配置目录相同,但只需要读取权限。MEILI_MASTER_KEY
可以是任意随机字符串,用于JellySearch
和Meilisearch
之间的认证。INDEX_CRON
确定索引更新的间隔,例如0 0 0/2 ? * * *
表示每2
小时一次。- 其他环境变量
变量 | 描述 | 默认值 | 是否必需 |
---|---|---|---|
JELLYFIN_URL |
您的 Jellyfin 实例的完整 URL 。 |
http://jellyfin:8096 |
是 |
JELLYFIN_CONFIG_DIR |
您挂载 Jellyfin 配置文件夹的目录。 |
/config |
是 |
INDEX_CRON |
运行重新索引的 cron 调度,如果没有它将不会自动重新索引。 |
null |
否 |
MEILI_URL |
您的 Meilisearch 实例可访问的 URL 。 |
http://meilisearch:7700 |
是 |
MEILI_MASTER_KEY |
用于与 Meilisearch 进行身份验证的密钥。 |
null |
否 |
然后执行下面的命令
1 | # 新建文件夹 jellyfin 和 子目录 |
运行
在浏览器中输入 http://群晖IP:5454
就能看到 jellyfin
的界面
如果只通过 jellyfin
查询
搜索 异形
,浏览器地址是 http://群晖IP:8096/web/#/search.html?query=异形
但是搜索 行星
是没有结果的
而通过 jellysearch
搜索 行星
,则是有结果的,
此时浏览器地址是
http://群晖IP:5454/web/#/search.html?query=行星
,唯一的区别就在于端口。
因为在简介中有 行星
出现
参考文档
Dominik / JellySearch · GitLab
地址:https://gitlab.com/DomiStyle/jellysearchInstall Jellysearch on native debian Jellyfin installation : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1hu9zny/install_jellysearch_on_native_debian_jellyfin/