tencent cloud

文档反馈

最后更新时间:2022-11-21 15:13:40

    功能描述

    消息搜索只能搜索本地存储的消息,比如接收到的消息、调用拉取历史消息接口得到的消息等。

    说明:

    旗舰版才支持

    消息搜索类介绍

    消息搜索参数类

    消息搜索参数类为 MessageSearchParam(Details)。搜索消息时,SDK 会按照该对象的设置,执行不同的搜索逻辑。

    MessageSearchParam 的参数说明如下:

    参数 含义 说明
    msg_search_param_keyword_array 关键字列表 最多支持 5 个。当消息发送者以及消息类型均未指定时,必须设置关键字列表;否则,关键字列表可以为空。
    msg_search_param_keyword_list_match_type 指定关键字列表匹配类型 可设置为 “或” 关系搜索,或 “与” 关系搜索。取值分别为 TIMKeywordListMatchType_Or 和 TIMKeywordListMatchType_And。默认为 “或” 关系搜索。
    msg_search_param_send_indentifier_array 指定 userID 发送的消息 最多支持 5 个。
    msg_search_param_message_type_array 指定搜索的消息类型集合 传空表示搜索支持的全部类型消息,(FaceElem 和 GroupTipsElem 暂不支持)。 类型取值参考 TIMElemType(Details)。
    msg_search_param_conv_id 搜索 “全部会话” 还是搜索 “指定的会话” msg_search_param_conv_id msg_search_param_conv_id 不为空,搜索指定会话。
    msg_search_param_search_time_position 搜索的起始时间点 默认为 0(从现在开始搜索)。UTC 时间戳,单位:秒。
    msg_search_param_search_time_period 从起始时间点开始的过去时间范围 默认为 0(不限制时间范围)。24x60x60 代表过去一天。单位:秒。
    msg_search_param_page_index 分页的页号 用于分页展示查找结果,0 表示首页。
    msg_search_param_page_size 每页结果数量 用于分页展示查找结果,如不希望分页可将其设置成 0。但如果结果数量太多,一次性拉取可能会引发性能问题。

    消息搜索结果类

    消息搜索结果类为 MessageSearchResult(Details)。参数说明如下:

    参数 含义 说明
    msg_search_result_total_count 搜索结果总数 如果搜索指定会话,返回满足搜索条件的消息总数
    如果搜索全部会话,返回满足搜索条件的消息所在的所有会话总数量
    msg_search_result_item_array 指定关键字列表匹配类型 如果搜索指定会话,返回结果列表只包含该会话结果;
    如果搜索全部会话,会对满足搜索条件的消息根据会话 ID 分组,分页返回分组结果。

    其中 msg_search_result_item_array 是个列表,内含 MessageSearchResultItem(Details) 对象,参数说明如下:

    参数 含义 说明
    msg_search_result_item_conv_id 会话 ID ——
    msg_search_result_item_total_message_count 消息数量 当前会话一共搜索到了多少条符合要求的消息。
    msg_search_result_item_message_array 满足搜索条件的消息列表 如果搜索指定会话,messageList 中装载的是本会话中所有满足搜索条件的消息列表。
    如果搜索全部会话,messageList 中装载的消息条数会有如下两种可能:
    * 如果某个会话中匹配到的消息条数 > 1,则 messageList 为空,您可以在 UI 上显示 “{messageCount} 条相关记录”。
    * 如果某个会话中匹配到的消息条数 = 1,则 messageList 为匹配到的那条消息,您可以在 UI 上显示之,并高亮匹配关键词。
    msg_search_result_item_conv_type 会话类型 TIMConvType(Details)

    搜索全部会话的消息

    当用户在搜索框输入关键字搜索消息时,您可以调用 MsgSearchLocalMessages (Details) 搜索 IM SDK 本地存储的消息。

    如果您希望在全部会话范围内搜索,只需要将 MessageSearchParam 中的 msg_search_param_conv_id 设置为空(null) 或者不设置即可。

    示例代码如下:

    // 通过关键词搜索本地消息
    MessageSearchParam param = new MessageSearchParam
    {
    msg_search_param_keyword_array = new List<string>
    {
     "关键词1"
    },
    msg_search_param_page_index = 0,
    msg_search_param_page_size = 10,
    msg_search_param_conv_type = TIMConvType.kTIMConv_C2C
    };
    TIMResult res = TencentIMSDK.MsgSearchLocalMessages(param, (int code, string desc, MessageSearchResult result, string user_data)=>{
    // 处理异步逻辑
    });
    

    搜索指定会话的消息

    当用户在搜索框输入关键字搜索消息时,您可以调用 MsgSearchLocalMessages (Details) 搜索 IM SDK 本地存储的消息。

    示例代码如下:

    // 通过执行会话id和关键词搜索本地消息
    MessageSearchParam param = new MessageSearchParam
    {
    msg_search_param_keyword_array = new List<string>
    {
     "关键词1"
    },
    msg_search_param_page_index = 0,
    msg_search_param_page_size = 10,
    msg_search_param_conv_id = "group_id"
    };
    TIMResult res = TencentIMSDK.MsgSearchLocalMessages(param, (int code, string desc, MessageSearchResult result, string user_data)=>{
    // 处理异步逻辑
    });
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持