# Searching for content effectively

**URL:** https://meta.discourse.org/t/searching-for-content-effectively/273328
**Category:** Using Discourse
**Tags:** search
**Created:** [July 31, 2023, 9:36am UTC](https://meta.discourse.org/t/searching-for-content-effectively/273328 "2023-07-31T09:36:11Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [July 31, 2023, 9:36am UTC](https://meta.discourse.org/t/searching-for-content-effectively/273328/1 "2023-07-31T09:36:11Z")

</div>

> 🔖 This guide provides a comprehensive overview of Discourse’s search capabilities, including filters, options, and advanced techniques.
> 
> 🙋 Required user level: All users

Discourse offers a powerful search functionality with numerous filters and criteria. When you use the advanced search form, it automatically appends the relevant syntax to your query. For example, selecting **[x] In my messages** will add `in:personal` to your search query.

This guide covers all available search options and features in Discourse, and provides useful tips and tricks for using the search function.

## Filters

Discourse provides a wide range of filters to help you refine your search results. Here’s a comprehensive list of available filters:

### Search Scope Filters

| Syntax | Description |
| --- | --- |
| `in:title` | Returns topics with the search term in the title |
| `in:first` | Returns only first posts in topics |
| `in:replies` | Returns only posts that are replies, excludes topic OPs |
| `in:all-posts` | Returns every post that matches the query, even when multiple posts match within the same topic |
| `in:all` | Returns posts from public topics and personal messages |
| `in:personal` | Searches within your personal messages |
| `in:personal-direct` | Returns posts in personal messages between two users only |
| `in:all-pms` | ℹ _For Admins only_   
 Returns posts from all personal messages, including those you’re not a part of |
| `topic:topic_id` | Returns posts within a specific topic |
| `include:unlisted` | ℹ _For Trust Level 4 and staff only_   
 Returns posts, including those from unlisted topics |

### Post Type Filters

| Syntax | Description |
| --- | --- |
| `in:regular` | Returns regular posts only (excludes whispers, small action posts, and staff-colored posts) |
| `in:whisper` | ℹ _For users with whisper access only_   
 Returns whisper posts |
| `in:pinned` | Returns posts from pinned topics |
| `in:wiki` | Returns wiki posts |
| `with:images` | Returns posts containing images |
| `in:bot` | Returns posts by bot users |
| `in:human` | Returns posts by human users |

### User and Group Filters

| Syntax | Description |
| --- | --- |
| `@username` | Returns posts by `username` |
| `user:username` | Returns posts by `username` |
| `created:@username` | Returns posts from topics created by `username` |
| `group:group_name` | Returns posts from users within the `group_name` group |
| `group_messages:group_name` | Returns posts from personal messages sent to the `group_name` group |
| `personal_messages:username` | ℹ _For Admins only_   
 Returns posts from personal messages of the specified user |
| `badge:name_or_id` | Returns posts linked to a specific badge grant |

### User-Specific Filters (Logged-In)

| Syntax | Description |
| --- | --- |
| `in:seen` | Returns posts you’ve seen |
| `in:unseen` | Returns posts you haven’t seen |
| `in:watching` | Returns posts from topics you’re watching |
| `in:tracking` | Returns posts from topics you’re tracking |
| `in:bookmarks` | Returns posts you’ve bookmarked |
| `in:likes` | Returns posts you’ve liked |
| `in:posted` | Returns your posts |
| `in:created` | Returns first posts of topics you created |

### Category and Tag Filters

| Syntax | Description |
| --- | --- |
| `categories:category1,category2` | Returns posts from the categories `category1` and `category2` |
| `#slug` | Searches by category slug or tag name, depending on context |
| `tags:tag1,tag2,tag3` | Returns posts tagged with `tag1`, `tag2`, or `tag3` (comma = OR) |
| `tags:tag1+tag2+tag3` | Returns posts tagged with all of `tag1`, `tag2`, and `tag3` (plus = AND) |
| `-tags:tag1,tag2,tag3` | Returns posts not tagged with `tag1`, `tag2`, or `tag3` |
| `in:tagged` | Returns posts from topics that have at least one tag |
| `in:untagged` | Returns posts from topics with no tags |

### Post and View Count Filters

| Syntax | Description |
| --- | --- |
| `posts_count:X` | Returns posts from topics that have exactly X posts |
| `min_posts:X` | Returns posts from topics with at least X posts |
| `max_posts:X` | Returns posts from topics with at most X posts |
| `min_views:X` | Returns posts from topics with at least X views |
| `max_views:X` | Returns posts from topics with at most X views |

### Date Filters

| Syntax | Description |
| --- | --- |
| `before:YYYY-MM-DD` | Returns posts created before the specified date |
| `after:YYYY-MM-DD` | Returns posts created after the specified date |
| `before:YYYY-MM` | Returns posts created before the specified month |
| `after:YYYY-MM` | Returns posts created within and after the specified month |
| `before:YYYY` | Returns posts created before the specified year |
| `after:YYYY` | Returns posts created within and after the specified year |
| `before:X` | Returns posts created more than X days ago (X = 1–999) |
| `after:X` | Returns posts created within the last X days (X = 1–999) |
| `before:day_of_week` | Returns posts created before the start of the specified day of the week |
| `after:day_of_week` | Returns posts created on and after the start of the specified day of the week |
| `before:month_name` | Returns posts created before the specified month (e.g. `before:january` or `before:jan`) |
| `after:month_name` | Returns posts created within and after the specified month |
| `before:yesterday` | Returns posts created before yesterday |
| `after:yesterday` | Returns posts created after yesterday |

### Status Filters

| Syntax | Description |
| --- | --- |
| `status:open` | Returns posts from topics that are not closed or archived |
| `status:closed` | Returns posts from closed topics |
| `status:archived` | Returns posts from archived topics |
| `status:noreplies` | Returns posts from topics with no replies |
| `status:single_user` | Returns posts from topics with posts from only one user |
| `status:public` | Returns posts from topics in public categories |

### File Type Filters

| Syntax | Description |
| --- | --- |
| `filetypes:ext1,ext2,ext3` | Returns posts with uploads of `ext1`, `ext2`, or `ext3` file extensions |

### Language Filters

| Syntax | Description |
| --- | --- |
| `locale:language_code` | Returns posts written in that language, e.g. `locale:en`, `locale:en_US`, `locale:en-gb` |
| `locale:any` | Returns posts that have a locale set |
| `locale:none` | Returns posts without a locale |

## Order

You can sort your search results using the following order options:

| Syntax | Description |
| --- | --- |
| `order:latest` | Sorts results from newest to oldest |
| `order:oldest` | Sorts results from oldest to newest |
| `order:latest_topic` | Sorts results by topic creation date, from newest to oldest |
| `order:oldest_topic` | Sorts results by topic creation date, from oldest to newest |
| `order:views` | Sorts results by number of views |
| `order:likes` | Sorts results by number of likes |
| `order:read` | (logged in only) Sorts by date you last visited the topic |

## Aliases

Discourse provides several aliases to make searching easier:

| Syntax | Equivalent |
| --- | --- |
| `l` | `order:latest` |
| `r` | `order:read` |
| `f` | `in:first` |
| `t` | `in:title` |
| `in:personal` | `in:messages` |
| `in:mine` | `in:created` |
| `min_post_count:` | `min_posts:` |
| `category:` | `categories:` |
| `tag:` | `tags:` |
| `filetype:` | `filetypes:` |
| `#` | Can be used for both categories and tags, depending on context |
| `user:` | `@` |
| `@me` | `@your_own_username` |

## Searching for Exact Words

Discourse uses a technique called [Stemming](https://en.wikipedia.org/wiki/Stemming) to find related words. While this is often helpful, there may be times when you want to search for an exact word. You can do this by enclosing your word with spaces and double quotes, like so: `" term "`.

This ensures that it will search only for the word “term” and exclude other related words.

> ℹ Note that because the spaces are considered part of the search term, it will not return “term” if it’s the first or the last word of a post since it won’t be preceded or followed by a space.

### Example: Searching for @mentions

Currently, searching for @mentions is not directly supported. However, you can achieve this using the exact word search method:

[https://meta.discourse.org/search?q=“%20%40username%20”](https://meta.discourse.org/search?q=%22%20%40username%20%22)

> ℹ This works because `%20` is how spaces are encoded in URLs and `%40` is how the `@` symbol is encoded.

This query will look specifically for `@username` (enclosed in spaces).

## Combining Search Options

You can combine multiple search options to create more specific queries. For example:

- `status:open category:support tag:urgent after:2023-01-01 order:latest`  
This will search for open support topics tagged as urgent, created after January 1, 2023, and sort the results by the latest post.

- `@jane_doe in:watching min_posts:5 with:images`  
This will search for posts by Jane Doe in topics you’re watching, with at least 5 posts, and containing images.

## Permissions and Limitations

Some advanced search options may require certain user permissions or may be limited to specific user roles. For example:

- `in:all-pms` is only available to administrators, not to regular users or moderators.
- `personal_messages:username` is only available to administrators.
- `in:whisper` requires whisper access.
- `include:unlisted` is only available to Trust Level 4 users and staff.

Always consider your user role and permissions when using advanced search options.

## Search Alternative: Topic List Filter

A [/filter](https://meta.discourse.org/filter) feature is available that supports many filter types. You can learn more on the official topic: [Topics list filter feature](https://meta.discourse.org/t/experimental-topics-list-filter-feature/263641)

## Source Files

For a more technical look at these options, all search filters and parameters can be found in [`search.rb`](https://github.com/discourse/discourse/blob/main/lib/search.rb#L369) - look for the `advanced_filter` methods.

## Additional Tips

1. You can also search for mentions of tags like #bug: [https://meta.discourse.org/search?q=“%20%23bug”](https://meta.discourse.org/search?q=%22%20%23bug%22)

2. Some filters may be added by plugins. For example, the Solved plugin adds:

3. The Topic Voting plugin adds:

4. The Assign plugin adds:

5. The Poll plugin adds:

> 💡 Take some time to experiment with different combinations of filters and options to find the most effective search strategy for your needs.

> Last edited by @ToddZ 2026-03-26T22:56:08Z
> 
> Last checked by @hugh 2024-07-25T01:14:19Z
> 
> > **Check document**
> >
> > Perform check on document:

---

_[View the full topic](https://meta.discourse.org/t/searching-for-content-effectively/273328)._
