不求甚解
20.7K subscribers
1.01K photos
7 videos
414 links
👀 在这里分享我日常的所见所思。 by @somkanel

📰 RSS 订阅: https://rss.fakeye.xyz

💻 镜像站: https://channel.fakeye.xyz

🎄 帮助频道助力: https://t.me/fakeye?boost

⚠️ 别在评论里发表低智/政治倾向/杠精言论,会被拉黑(关注关系是双向的)。
Download Telegram
Forwarded from Newlearnerの自留地 (初学者 | newlearner.site)
#telegram #Search

🔍 为什么 Telegram 不能搜寻中文讯息

⭕️ 圈重点:

- Telegram 使用 SQLite 作为资料库
- fts 全文搜索将字串以 Tokenizer 切割成短语,分别取 Hash,寻找时与哈希表进行比对
- 标记生成器根据分离器、分隔符切割字串
- 分离器、分隔符之外的成分为「令牌」,有“大号*(字母),N *(数字)及Co(其他)”三种预设
- 中日韩文字属于 unicode CJK,绝大多数被识别为令牌

(╯﹏╰) 从而,汉字语汉字间没有任何分隔符,会被整串拿去哈希,从而导致搜寻无效。本文从代码的角度很好地说明了 Telegram 的中文消息搜索为何如此之烂

👨🏻‍💻 作者给了两个建议:

1️⃣ 手动在汉字间插入不可见的分离器
2️⃣ 写个客制化的 Tokenizer,即魔改 Telegram 客户端软件

❤️ 感谢群友分享此文,之前自留地也通过不同的思路整理了中文搜索方案,并认为目前的最优解是通过全局爬虫+数据库索引实现:Telegram 中文搜索方案探索

频道:@NewlearnerChannel