[ad_1]
#telegram #Search
⭕️ 圈重点:
– Telegram 使用 SQLite 作为资料库
– fts 全文搜索将字串以 Tokenizer 切割成短语,分别取 Hash,寻找时与哈希表进行比对
– 标记生成器根据分离器、分隔符切割字串
– 分离器、分隔符之外的成分为「令牌」,有“大号*(字母),N *(数字)及Co(其他)”三种预设
– 中日韩文字属于 unicode CJK,绝大多数被识别为令牌
(╯﹏╰) 从而,汉字语汉字间没有任何分隔符,会被整串拿去哈希,于是导致搜寻无效。本文从代码的角度很好地说明了 Telegram 的中文消息搜索为何如此之烂
??? 作者给了两个建议:
1️⃣ 手动在汉字间插入不可见的分离器
2️⃣ 写个客制化的 Tokenizer,即魔改 Telegram 客户端软件
❤️ 感谢群友分享此文,之前自留地也通过不同的思路整理了中文搜索方案,并认为目前的最优解是通过全局爬虫+数据库索引实现:Telegram 中文搜索方案探索
频道:@blog4563
[ad_2]