IMSDK
IM features a comprehensive suite of solutions including global access, one-to-one chat, group chat, message push, profile and relationship chain hosting, and account authentication. It also provides complete app access and backend management APIs.
V2TIMMessageSearchParamabstract
Swift - V2TIMMessageSearchParam
Swift

Class V2TIMMessage​Search​Param

public class V2TIMMessageSearchParam  

Definition of V2TIMMessageSearchParam

Initializers

init()

public init()  

Properties

description

public var description: String  

keyword​List

public var keywordList: Array<String>?  

Specify the keywords (max 5). If neither the sender nor message type is specified, the keyword list cannot be empty.

keyword​List​Match​Type

public var keywordListMatchType: V2TIMKeywordListMatchType  

Whether to combine the keywords with OR (V2TIM_KEYWORD_LIST_MATCH_TYPE_OR) or AND (V2TIM_KEYWORD_LIST_MATCH_TYPE_AND). The default is OR.

sender​User​IDList

public var senderUserIDList: Array<String>?  

Specify the senders (max 5 user IDs).

message​Type​List

public var messageTypeList: Array<V2TIMElemType>?  

Set the message types to search. If nil is passed in, all message types supported are searched (V2TIMFaceElem and V2TIMGroupTipsElem are not supported).

conversation​ID

public var conversationID: String?  

Search all conversations or a specified conversation

If conversationID is nil, the messages in all conversations will be searched.

If conversationID is not nil, the messages of a specific conversation will be searched. You need to pass in the unique ID of a conversation. For one-to-one chats, the value format is [NSString stringWithFormat:@"c2c_%@",userID]. For group chats, the value format is [NSString stringWithFormat:@"group_%@",groupID].

search​Time​Position

public var searchTimePosition: UInt  

Specify the start time for search. The default value is 0, indicating the current time. You can also set it to a UTC timestamp, in seconds.

search​Time​Period

public var searchTimePeriod: UInt  

Set the time range (seconds) for search. The default value 0 indicates the time range is not limited. If you set it to 24x60x60, messages in the past day will be searched.

page​Index

public var pageIndex: UInt  

Specify the page number (which starts from 0). This is used to paginate search results. For example, to return 10 results per page, you can do the following:

  • For the first call, set pageSize to 10 and pageIndex to 0. totalCount in the callback indicates the total number of search results.

  • You can then calculate the total number of pages: totalPage = (totalCount % pageSize == 0) ? (totalCount / pageSize) : (totalCount / pageSize + 1)

  • For subsequent calls, you can specify a page number (must be smaller than totalPage) so that the results on that page will be returned.

page​Size

public var pageSize: UInt  

Set the maximum number of results returned per page. This is used to paginate search results. If you set the parameter to 0, the results will not be paginated. Please note that the search performance may be compromised if you do not paginate search results when there are too many of them.

search​Count

public var searchCount: UInt  

Set the number of results returned per cloud search

search​Cursor

public var searchCursor: String?  

Set the starting position for a cloud search. For the first call, leave the parameter empty. For subsequent calls, pass in the value of searchCursor in V2TIMMessageSearchResult.