logo
当前页

搜索本地消息


功能简介

凭借 ZIM SDK,您可以通过关键字、用户 ID 等条件对单个或所有 单聊群聊 会话的本地消息进行搜索,获取符合条件的消息列表;也可以基于本地消息搜索会话。

搜索指定会话的本地消息

创建 ZIM 对象并登录后,调用 searchLocalMessages 接口,传入参数 conversationID、conversationType、config,设置搜索条件(如关键词),获取某个会话中符合条件的本地消息。

符合条件的消息列表,将通过 ZIMMessagesSearchedResult 回调接口返回并。

示例代码
// 搜索单个会话 7 天内的包含 "zego" 的本地文本消息。

var endTime = Date.now();
// 计算七天前的时间戳
var startTime = endTime - 7 * 24 * 3600 * 1000;
// 会话 ID。
// 单聊会话的 conversationID 为对方的 userID。
// 群组会话的 conversationID 为群组的 groupID。
var conversationID = 'xxxx';
var conversationType = 0;

var config = {
    count: 20, // 搜索结果数量
    order: 0, // 指定搜索顺序为从本地存储的最后(时间)一条消息向前查询
    keywords: ['zego'], // 设置关键词为 “zego”,最多支持 5 个。当设置多个关键词后,搜索结果只展示同时包含所有关键词的本地消息
    messageTypes: [1], // 指定消息类型为文本
    startTime, // 搜索的起始时间点
    endTime, // 搜索的结束时间点
};

zim.searchLocalMessages(conversationID, conversationType, config)
    .then(function ({ messageList }) {
        // 操作成功
    })
    .catch(function (err) {
        // 操作失败
    });
1
Copied!

搜索全局本地消息

搜索结果按会话分类

创建 ZIM 对象并登录后,调用 searchGlobalLocalMessages 接口,传入参数 config,设置搜索条件(如关键词),全局搜索符合条件的本地消息。

符合条件的消息列表,将通过 ZIMMessagesGlobalSearchedResult 回调接口返回并按会话分类。

示例代码
// 全局搜索 7 天内的包含 "zego" 的本地文本消息。

var endTime = Date.now();
// 计算七天前的时间戳
var startTime = endTime - 7 * 24 * 3600 * 1000;

var config = {
    count: 20, // 搜索结果数量
    order: 0, // 指定搜索顺序为从本地存储的最后(时间)一条消息向前查询
    keywords: ['zego'], // 设置关键词为 “zego”,最多支持 5 个。当设置多个关键词后,搜索结果只展示同时包含所有关键词的本地消息
    messageTypes: [1], // 指定消息类型为文本
    startTime, // 搜索的起始时间点
    endTime, // 搜索的结束时间点
};

zim.searchGlobalLocalMessages(config)
    .then(function ({ messageList }) {
        // 操作成功
    })
    .catch(function (err) {
        // 操作失败
    });
1
Copied!

基于本地消息搜索会话

创建 ZIM 对象并登录后,调用 searchLocalConversations 接口,传入参数 config,设置与本地消息相关的搜索条件,全局搜索符合条件的会话。

符合条件的会话列表,将通过 ZIMConversationsSearchedResult 回调接口返回。

示例代码
// 搜索 7 天内包含关键字 "zego" 的本地文本消息,并以会话列表视图返回结果。

var endTime = Date.now();
// 计算七天前的时间戳
var startTime = endTime - 7 * 24 * 3600 * 1000;

var config = {
    totalConversationCount: 20, // 搜索结果数量
    conversationMessageCount: 3, // 每个会话命中最新的 3 条消息
    nextFlag: 0,
    keywords: ['zego'], // 设置关键词为 “zego”,最多支持 5 个。当设置多个关键词后,搜索结果只展示同时包含所有关键词的本地消息
    messageTypes: [1], // 指定消息类型为文本
    startTime, // 搜索的起始时间点
    endTime, // 搜索的结束时间点
};

zim.searchLocalConversations(config)
    .then(function ({ conversationSearchInfoList, nextFlag }) {
        // 操作成功
    })
    .catch(function (err) {
        // 操作失败
    });
1
Copied!

Previous

设置消息拓展字段

Next

消息表态