Searching¶
Use the search box to find messages and replies that match the search terms that you enter. All channels that you are a member of in the current team are searched.
- Multiple-word search terms return results that contain all of the terms.
- When results appear, click Jump to view that post in the channel archive.
- File attachments and their filenames are not searched. If file attachments show up in the search results, it’s because they are attached to messages that match the search query.
- Archived channels can be searched as long as you’re a member of that channel. To remove archived channels from your search results, you can leave those channels. If you’re unable to see messages in archived channels in your search results, ask your System Admin if Allow users to view archived channels has been disabled under System Console > Users and Teams.
- You can use search modifiers such as
from:dave
to return results only from certain people or in certain channels. For more information about this, see the Search Modifiers section.
Like many search engines, common words such as the
, which
, and are
(known as “stop words”), as well as two-letter and one-letter search terms, are not shown in search because they typically return too many results. See database documentation on MySQL and Postgres for a full list.
Search Modifiers¶
Clicking inside the search field offers a selection of search filters to narrow down your query. Click on a search filter to add it to the search input.

from:
and in:
¶
Use from:
to find posts from specific users and in:
to find posts in specific public or private channels, as well as direct and group messages. Channels can be searched by display name or ID.
- For example: Searching
Mattermost in:town-square
only returns messages in Town Square that containMattermost
. - Searching
Mattermost in: @john.doe
returns messages that containMattermost
in your direct message history with John Doe.
before:
, after:
, and on:
¶
Use before:
to find posts before a specified date and after:
to find posts after a specified date. Use both before:
and after:
together to search in a specified date range. Use on:
to find posts from a specific date. You can use the date picker to select a date or you can type it in YYYY-MM-DD format. For example:
- Searching
website before: 2018-09-01
will return messages containing the keywordwebsite
posted prior to September 1, 2018. - Searching
website after: 2018-08-01
will return messages containing the keywordwebsite
posted after August 1, 2018. - Searching
website before: 2018-09-01 after: 2018-08-01
will return all messages that contain the keywordwebsite
that were posted between August 1, 2018 and September 1, 2018. - Searching
website on: 2018-09-01
will return messages that contain the keywordwebsite
that were posted on September 1, 2018.

Exclusions¶
Use the -
symbol to exclude posts from your search results. For example, test -release
will only return results with the word test
that also do not contain the word release
.
This can be used in combination with modifiers to refine search results. For example, test -release -in:release-discussion -from:eric
will return all results with the word test
, excluding posts with the word release
, excluding posts made in the release-discussion
channel, and excluding posts from @eric
.
Quotation Marks¶
Use quotation marks to return search results for exact terms.
- For example: Searching
"Mattermost website"
returns messages containing the exact phraseMattermost website
, but not messages containingMattermost
andwebsite
separately.
Wildcard¶
Use the *
character for wildcard searches that match within words.
- For example: Searching for
rea*
brings back messages containingreach
,reason
and other words starting withrea
.
Hashtags¶
Hashtags are searchable labels for posts. Search for any posts containing a hashtag by clicking the hashtag in an existing post or typing the hashtag with the pound symbol into the search bar. Create hashtags in any post by using the pound sign #
followed by alphanumeric or other unicode characters.
Valid hashtags:
- Don’t start with a number.
- Are at least 3 characters long, excluding the
#
. - Are made up of alphanumeric or other unicode characters.
- May contain dots, dashes, or underscores.
- Examples:
#bug
,#marketing
,#user_testing
,#per.iod
,#check-in
,#마케팅
Hashtags don’t link to channels. For example, if you have a channel named “Marketing”, clicking a #marketing
hashtag does not redirect you to that channel. You can link to public channels using ~
followed by the channel name, for example ~marketing
.
Other notes:
- IP addresses (e.g.
10.100.200.101
) don’t return results.
Technical Notes¶
Searching Chinese, Korean, and Japanese¶
- The best experience for searching in Chinese, Korean and Japanese is to use MySQL 5.7.6 or later with special configuration. Please see documentation.
- You can search to some degree without this configuration by adding
*
to the end of search terms.
Differences between PostgreSQL and MySQL Search¶
By default, Mattermost uses full text search support included in MySQL and PostgreSQL. These databases have slightly different search behavior. Check Main Menu > About Mattermost to see which database you’re using.
For example, different databases have different “stop words” filtered out of search results. See database documentation on MySQL and Postgres for a full list. Other differences include:
PostgreSQL:
- Email addresses don’t return results.
- Hashtags or recent mentions of usernames containing a dash don’t return search results.
- Terms containing a dash return incorrect results as dashes are ignored in the search engine.
MySQL:
- Hashtags or recent mentions of usernames containing a dot don’t return search results.
- Stop words that are excluded from search in MySQL:
"a", "about", "an", "are", "as", "at", "be", "by", "com", "de", "en", "for", "from", "how", "i", "in", "is", "it", "la", "of", "on", "or", "that", "the", "this", "to", "was", "what", "when", "where", "who", "will", "with", "und", "the", "www"
.