浏览 SDKs · HarmonyOS
平台
SDKsHarmonyOS商业版

搜索消息

在当前设备已同步的本地消息中按关键词和条件搜索。

复制

本地搜索不会请求业务后端全量索引。conversationID 为空字符串时搜索全部本地会话;群聊应使用会话 ID,而不是 groupID

参数说明

参数类型是否必填说明
conversationIDstring限定会话;空字符串表示全部本地会话。
keywordsstring[]非空关键词列表。
keywordMatchTypeKeywordListMatchType命中任一或同时命中全部。
senderUserIDsstring[]发送者筛选;不限制时传空数组。
messageTypesContentType[]消息类型筛选;不限制时传空数组。
searchTimePositionnumberUTC 秒级搜索起点;0 表示当前时间。
searchTimePeriodnumber向过去搜索的秒数;0 表示不限制。
paginationRequestPagination页码和每页数量。
import sdk, {
  ContentType,
  KeywordListMatchType,
  SearchLocalMessagesReq,
  SearchLocalMessagesResp,
} from '@openimsdk/imsdk';

const request: SearchLocalMessagesReq = {
  conversationID: conversationID,
  keywords: [searchText.trim()],
  keywordMatchType: KeywordListMatchType.KeywordMatchOr,
  senderUserIDs: [],
  messageTypes: [ContentType.Text, ContentType.AtText],
  searchTimePosition: 0,
  searchTimePeriod: 0,
  pagination: { pageNumber: 1, showNumber: 20 },
};
const response: SearchLocalMessagesResp = await sdk.searchLocalMessages(request);
renderSearchResults(response.searchResultItems, response.count);

搜索结果按会话组织。跳转时使用结果项的 conversationID 与消息的 clientMsgID,修改任一条件时重置为第 1 页。该接口只搜索当前账号在当前设备已经同步的本地消息。