Matrix 很好很强大,一般服务端都用 Synapse ,支持的协议最完善,然而它的中文搜索很难用,原因在于 PostgreSQL 未能正确的给中文分词。另一个服务端项目 dendrite 支持 CJK (中日韩)分词,也只是略好一些,并且那个项目开发也几乎停滞了。 开源 IM 软件中原生支持中文搜索的有 Mattermost ,我参考它给 Synapse 开发了一个方案,具体的做法是 使用 Zhparser 插件版 Postgres ,给数据表添加一个字段,改少量 Synapse 代码。通过文件映射的方式,尽可能减少后期维护成本。
写了一篇文章分享这种方案:《给 Matrix Synapse 添加中文搜索》


