Search messages
Chat UI does not provide a built-in message search page by default. To implement a custom search page, use the search query APIs provided by BaseChannel.
Common search methods
- Global keyword search:
BaseChannel.createSearchMessagesQuery(SearchMessagesQueryParams) - Search by user:
BaseChannel.createSearchMessagesByUserQuery(SearchMessagesByUserQueryParams) - Search by channel and time range:
BaseChannel.createSearchMessagesByTimeRangeQuery(SearchMessagesByTimeRangeQueryParams) - Filter by message type:
BaseChannel.createLocalMessagesByTimeQuery(LocalMessagesByTimeQueryParams)(usingmessageTypes)
Example
- Kotlin
- Java
kotlin
val query = BaseChannel.createSearchMessagesQuery(
SearchMessagesQueryParams(
keyword = "order",
channelTypes = listOf(ChannelType.DIRECT, ChannelType.GROUP),
messageTypes = listOf(MessageType.TEXT, MessageType.IMAGE),
pageSize = 20
)
)
query.loadNextPage { page, error ->
if (error == null) {
val messages = page?.data.orEmpty()
// Render search results
}
}
Java
SearchMessagesQueryParams params = new SearchMessagesQueryParams(
"order",
0L,
0L,
Arrays.asList(ChannelType.DIRECT, ChannelType.GROUP),
null,
null,
null,
Arrays.asList(MessageType.TEXT, MessageType.IMAGE),
20,
false);
SearchMessagesQuery query = BaseChannel.createSearchMessagesQuery(params);
query.loadNextPage((page, error) -> {
if (error == null) {
List<Message> messages = page != null ? page.getData() : Collections.emptyList();
// Render search results
}
});