浏览 SDKs · React Native
平台
SDKsReact Native

搜索消息

OpenIM React Native SDK 搜索消息。

复制

在本地数据库中根据关键词、消息类型、发送者或时间范围等多维度搜索已同步的消息记录。

const result = await OpenIMSDK.searchLocalMessages({
  conversationID,
  keywordList: ['发布'],
  messageTypeList: [MessageType.TextMessage],
  pageIndex: 1,
  count: 20,
});

参数说明

keywordList 可传入一个或多个搜索关键词;对于单搜索输入框,通常传入清理首尾空格后的非空字符串数组。

参数类型必填含义
conversationIDstring否指定会话 ID。传入特定会话 ID 则仅在该会话内搜索;传空字符串则在全局所有会话中搜索。
keywordListstring[]是搜索关键词列表。
keywordListMatchTypenumber否多关键词匹配模式:0 表示命中任意一个关键词(OR),1 表示必须同时命中全部关键词(AND);缺省默认为 0。
senderUserIDListstring[]否指定发送者用户 ID 列表,仅搜索由这些用户发送的消息。
messageTypeListMessageType[]否指定消息类型列表(如文本、图片等);缺省时按 SDK 默认常见消息类型进行搜索。
searchTimePositionnumber否搜索的时间范围截止位置(Unix 时间戳,单位为秒)。
searchTimePeriodnumber否从 searchTimePosition 向前搜索的时间区间长度(单位为秒)。
pageIndexnumber否分页页码,从 1 开始。
countnumber否每页返回的搜索结果消息数量上限。

返回结果

调用成功后返回 SearchMessageResult 对象:

字段类型含义
totalCountnumber符合当前搜索条件的匹配消息总数。
searchResultItemsSearchMessageResultItem[]按会话归类组织的搜索结果条目列表。

每个 SearchMessageResultItem 包含目标会话基本信息以及该会话中命中的消息数组 messageList: MessageItem[]。当用户在搜索列表中点击某条匹配消息时,可通过读取消息上下文定位并加载该消息在聊天记录中的前后上下文。变更搜索条件或关键词时,建议重置页码为第一页重新检索。