搜索本地消息
提示
- 搜索消息功能仅支持搜索本地数据库中存储的消息。
- SDK 从 5.3.4 版本开始支持超级群本地消息搜索功能。
- 融云提供搜索超级群历史消息记录的 IM Server API。详见服务端文档搜索超级群消息。
您可以通过 IMLib SDK 的相关搜索接口通过关键词、消息类型等条件搜索会话中的符合条件的消息列表,同时支持按时间段搜索。您也可以通过用户 userId 搜索指定会话中符合条件的消息列表。
支持关键字搜索的消息需要实现 MessageContent
的 getSearchableWord
方法:
- 内置的消息类型中文本消息(TextMessage),文件消息(FileMessage),和图文消息
RichContentMessage
类型默认实现了MessageContent#getSearchableWord
方法。 - 自定义消息类型也可以支持关键字搜索,需要您参考文档自行实现。详见自定义消息类型。
搜索会话
按关键字搜索本地所有会话。返回符合条件的会话列表 SearchConversationResult。请注意,超级群业务中单个会话(conversation
)仅对应单个超级群频道。
接口
Java
ChannelClient.getInstance().searchConversationForAllChannel(keyword, conversationTypes, messageTypeObjectNames,callback);
参数说明
如果搜索条件与搜索结果包含多个会话类型,您可以通过返回结果中 Conversation 对象的会话类型(ConversationType
)字段进行分类或筛选。
参数 | 类型 | 说明 |
---|---|---|
keyword | String | 搜索的关键字 |
conversationTypes | Conversation.ConversationType[] | 会话类型列表,包含 ConversationType,例如 ConversationType.ULTRA_GROUP 、ConversationTypes.PRIVATE ,ConversationTypes.GROUP 。 |
objName | String[] | 消息类型列表,默认仅支持内置类型 RC:TxtMsg (文本消息)、RC:FileMsg (文件消息)、RC:ImgTextMsg (图文消息 )。 |
callback | IRongCoreCallback.ResultCallback<List<SearchConversationResult>> | 回调。搜索结果为 SearchConversationResult 列表。请注意,针对超级群,单个会话(conversation )对应单个超级群频道。 |