默认

IM全文检索技术专题(三):网易云信Web端IM的聊天消息全文检索技术实践

查看数: 108344 | 评论数: 3 | 收藏 5
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-08-03 00:30

正文摘要:

本文作者网易云信高级前端开发工程师李宁,原题“如何在 Electron 上实现 IM SDK 聊天消息全文检索”,即时通讯网收录时有修订。 1、引言 在IM客户端的使用场景中,基于本地数据的全文检索功能扮演着重要的角色, ...

评论

crazyerror 发表于 2 年前
这是实现一套本地ES啊
JackJiang 发表于 3 年前
引用:椎锋陷陈 发表于 2021-08-26 09:34
这里应该是全文最关键的技术实现点了,应该是属于比较典型的空间换时间的做法吧。
但是我的疑问是,这 ...

文章是针对本地存储,如果要在服务端实现,全文检索代价就有点大了
椎锋陷陈 发表于 3 年前
引用:    1)当用户主动发送消息、主动同步消息、主动删除消息以及收到消息的时候,会将每一条消息对象中的消息经过分词后同步到倒排索引数据库;
    2)当用户需要查询关键字的时候,会先去倒排索引数据库中找出对应消息的 idClient,再根据 idClient 去 indexDB 中找出对应的消息对象返回给用户。


这里应该是全文最关键的技术实现点了,应该是属于比较典型的空间换时间的做法吧。
但是我的疑问是,这种做法相当于,每条消息每次都会产生数条索引,如果是单条消息可能还好,如果是批量拉取离线消息的场景性能表现是不是会差一点?
而且随着应用使用数据越久,建立的索引应该也会越来越多,这个可以放任不管吗?
还有就是,这个实现应该是基于应用本地数据库实现的吧?如果应用支持消息漫游,但又清除了本地数据(包括数据库),是不是就无法进行全文检索了?

返回顶部