Emby高级教程:中文搜索增强实现教程
作者:jacksky6
【写作说明】整体思路和操作来源于B站大神Choyakawa , 本人也是小白一枚 , 只是对自己的操作过程做一个详细记录 。
【写作缘由】Emby的搜索功能太烂了 , 中文支持极差 。 通过分析Emby数据库采用sqlite3 , sqlite3的原生FTS索引本来中文搜索就比较烂 , 所以Emby的搜索烂这也不能完全算是Emby的锅 。
Emby本身采用c#net跨平台开发 , 我们可以通过反编译的方式修改搜索功能 , 使用wangfenjin大神的simpleFTS扩展插件 , 建立FTS索引搜索 , 以此来支持中文拼音全拼搜索 , 中文拼音首字母搜索 。
【效果展示】
文章图片
文章图片
【simple插件介绍】simple是一个支持中文和拼音的sqlite3fts5拓展 。 它完整提供了微信移动端的全文检索多音字问题解决方案一文中的方案四 , 非常简单和高效地支持中文及拼音的搜索 。
【准备工作和注意事项】1、.Net反编译工具
推荐使用dnSpyEx/dnSpy的最新版本6.2 , 不要使用dnSpy/dnSpy6.1.8 ,
反编译中所有的修改请使用编辑方法而不是编辑类
2、SQLite数据库管理软件:所有的都可以 , 比如Navicat , 也可以使用命令行 。
3、请自行查找所用平台Emby的安装目录 , 本教程需要修改三个文件:
软件安装目录下system目录下的SQLitePCL.pretty.dll文件
软件安装目录下system目录下的Emby.Server.Implementations.dll文件
软件安装目录下data目录下的library.db文件
注意:请做好这三个文件的备份 , 以防数据丢失 。
【Emby高级教程:中文搜索增强实现教程】system文件夹下的dll文件之间存在依赖 , 建议将system文件夹(包含所有文件)拷贝出来 。
4、所有的修改请在Emby关闭的情况下进行 。
5、所用到的工具:dnSpyEx/dnSpy和wangfenjin/simple请自行到全球最大的代码托管网站搜索下载 。
【修改SQLitePCL.pretty.dll】反编译修改SQLitePCL.pretty.dll文件中Emby链接SQLite数据库的方法 , 增加允许运行时可加载扩展sqlite3_enable_load_extension的SQLiteC-API调用 。
raw.sqlite3_enable_load_extension(sqlite,1);
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
【修改Emby.Server.Implementations.dll】1、点击文件-----打开选择Emby.Server.Implementations.dll
2、修改EmbyFTS5实现 , 使用自定义tokenizer
usingSystem.IO;databaseConnection.Execute("SELECTload_extension('"+Path.Combine(this._config.ApplicationPaths.DataPath,"libsimple")+"');");
文章图片
文章图片
文章图片
文章图片
还是在这个方法下面 , 一长串SQL中 , 修改FTS5tokenize为simple
- 英伟达|12490F全核5G也太香了!华硕ROG STRIX B660-G超外频教程
- M1 M2 Mac原生版AE2022下载与安装教程 支持苹果M全系芯片inetl-After Effects
- Nodejs Express新手教程&高手进阶
- 魅族|打破局限!魅族19主理人第四期创意设计公布,横向折叠高级感尽显
- 华为|高级!Mate50 Pro真机效果图、售价齐曝光:华为要大卖节奏?
- three.js新手入门教程
- 诺基亚|新诺基亚N91概念机:真全屏将高级感拉满,会是高端旗舰机黑马吗
- Adobe Experience Design 2021绿色版下载安装教程
- 程序员|Safari浏览器你真的会用吗?个性化高级功能如此贴心
- Blender 3D 2.82 绿色免安装版【Blender 2.82】中文版下载 安装教程