# Filtering topic lists in Discourse

**URL:** https://meta.discourse.org/t/filtering-topic-lists-in-discourse/375558
**Category:** Using Discourse
**Tags:** search, reference, topic-filter
**Created:** [July 24, 2025, 4:12am UTC](https://meta.discourse.org/t/filtering-topic-lists-in-discourse/375558 "2025-07-24T04:12:30Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [July 24, 2025, 4:12am UTC](https://meta.discourse.org/t/filtering-topic-lists-in-discourse/375558/1 "2025-07-24T04:12:30Z")

</div>

> 🔖 This guide explains Discourse’s advanced topic filtering system, including the complete query language syntax, filter options, and how to use the `/filter` route effectively.
> 
> 🙋 Required user level: All users

# Using the Discourse topic filter query language

Discourse’s topic filter provides a powerful query language for finding topics based on multiple criteria. This advanced search interface allows you to combine filters, sort results, and create precise queries for any content on your forum.

## Accessing the filter

You can access the topic filter in two ways:

**Direct URL access:**  
Navigate to `/filter` on your Discourse instance (for example: [https://meta.discourse.org/filter](https://meta.discourse.org/filter))

 ![image](https://global.discourse-cdn.com/meta/original/4X/4/7/a/47a98d59e153c85ff3abeb002648a04c12055c6e.png)

**Sidebar navigation:**  
Click “More” in your sidebar, then select the filter option

_The filter interface includes an intelligent autocomplete system that suggests available filters and values as you type._

## Basic query syntax

Filters use a structured syntax with the format:

```plaintext
filter-name:value

```

**Combine multiple filters:**

```plaintext
category:support status:open created-after:2023-01-01

```

**Include regular search terms:**

```plaintext
category:support ssl certificate error

```

This searches for topics in the “support” category containing the words “ssl certificate error”.

## Category filters

### `category:` (alias: `categories:`)

Filter topics by category

**Basic usage:**

```plaintext
category:support
category:dev,support # Topics in dev OR support categories
category:documentation:admins # Topics in admins subcategory of documentation

```

**Advanced prefixes:**

- **`=`** - Category without subcategories: `=category:general`
- **`-`** - Exclude category: `-category:off-topic`
- **`-=`** - Exclude category without subcategories: `-=category:meta`

**Examples:**

```plaintext
category:bug,feature # Include bug or feature categories (with subcategories)
=category:bug,feature # Include bug or feature categories (without subcategories)
-category:bug,feature # Exclude bug or feature categories (with subcategories)
-=category:bug,feature # Exclude bug or feature categories (without subcategories)

```

## Tag filters

### `tag:` (alias: `tags:`)

Filter topics by tags (requires tagging to be enabled)

**Basic usage:**

```plaintext
tag:bug
tag:feature,enhancement # Topics with feature OR enhancement tags
tag:bug+urgent # Topics with BOTH bug AND urgent tags

```

**Exclusion:**

```plaintext
-tag:solved # Exclude topics with solved tag
-tag:bug+urgent # Exclude topics with both bug and urgent tags
-tag:bug,urgent # Exclude topics with bug or urgent tags

```

### `tag_group:`

Filter by tag groups

**Basic usage:**

```plaintext
tag_group:moderation
tag_group:"tag group name" # Use quotes for names with spaces or special characters
-tag_group:staff-only # Exclude topics with tags from staff-only group

```

## Date filters

All date filters support both specific dates (`YYYY-MM-DD`) and relative days:

### Activity dates

- **`activity-before:`** - Topics with last activity before date
- **`activity-after:`** - Topics with last activity after date

### Creation dates

- **`created-before:`** - Topics created before date
- **`created-after:`** - Topics created after date

### Latest post dates

- **`latest-post-before:`** - Topics with latest post before date
- **`latest-post-after:`** - Topics with latest post after date

**Date format examples:**

```plaintext
created-after:2023-12-25 # Specific date (YYYY-MM-DD)
created-after:30 # 30 days ago
created-after:1 # Yesterday
created-after:0 # Today

```

**Quick suggestions:**

- `1` - Yesterday
- `7` - Last week
- `30` - Last month
- `365` - Last year

## User filters

### `created-by:`

Filter by topic author (username or group name)

**Basic usage:**

```plaintext
created-by:username
created-by:user1,user2 # Topics by user1 OR user2
created-by:@username # @ prefix is optional
created-by:me                
created-by:staff # Topics created by members of the "staff" group

```

### `users:` (alias: `user:`)

Filter topics where specific users have participated (posted in the topic)

**Basic usage:**

```plaintext
users:username # Topics where username has posted
users:user1,user2 # Topics where user1 OR user2 has posted
users:user1+user2 # Topics where BOTH user1 AND user2 have posted

```

**Exclusion:**

```plaintext
-users:username # Topics where username has NOT posted
-users:user1,user2 # Topics where neither user1 nor user2 has posted
-users:user1+user2 # Topics where at least one of user1 or user2 has NOT posted

```

### `group:` (alias: `groups:`)

Filter topics where members of specific groups have participated

**Basic usage:**

```plaintext
group:staff # Topics where a staff group member has posted
group:staff,moderators # Topics where a member of staff OR moderators has posted
group:staff+moderators # Topics where members of BOTH staff AND moderators have posted

```

## Personal filters (authenticated users only)

### `in:`

Filter by your personal relationship to topics

**Available options:**

- **`in:pinned`** - Topics pinned for you
- **`in:bookmarked`** - Topics you’ve bookmarked
- **`in:watching`** - Topics you’re watching
- **`in:tracking`** - Topics you’re tracking
- **`in:muted`** - Topics you’ve muted
- **`in:normal`** - Topics with normal notification level
- **`in:watching_first_post`** - Topics in categories or tags where you watch first post
- **`in:new`** - Topics with new activity (new topics you haven’t seen + unread replies)
- **`in:new-topics`** - New topics you haven’t seen yet
- **`in:new-replies`** - Topics with unread replies
- **`in:unseen`** - Topics you haven’t viewed yet

**Examples:**

```plaintext
in:bookmarked category:support
in:watching,tracking # Topics you're watching OR tracking
in:unseen category:welcome # Unseen topics in the welcome category
in:new order:created # All new activity, sorted by creation date

```

## Numeric filters

### Like filters

- **`likes-min:`** - Minimum total likes across all posts
- **`likes-max:`** - Maximum total likes across all posts
- **`likes-op-min:`** - Minimum likes on opening post
- **`likes-op-max:`** - Maximum likes on opening post

### Post count filters

- **`posts-min:`** - Minimum number of posts
- **`posts-max:`** - Maximum number of posts

### Participant filters

- **`posters-min:`** - Minimum number of participants
- **`posters-max:`** - Maximum number of participants

### View count filters

- **`views-min:`** - Minimum view count
- **`views-max:`** - Maximum view count

**Examples:**

```plaintext
likes-min:10 # Topics with at least 10 likes
posts-min:5 posts-max:20 # Topics with 5-20 posts
views-min:100 likes-op-min:5 # Popular topics with engaged opening posts

```

## Status filters

### `status:`

Filter by topic status

**Available statuses:**

- **`status:open`** - Open topics (not closed or archived)
- **`status:closed`** - Closed topics
- **`status:archived`** - Archived topics
- **`status:listed`** - Listed (visible) topics
- **`status:unlisted`** - Unlisted topics
- **`status:deleted`** - Deleted topics (requires permission)
- **`status:public`** - Public topics (non-restricted categories)

**Plugin-specific statuses:**

- **`status:solved`** - Solved topics (with Solved plugin)
- **`status:unsolved`** - Unsolved topics (with Solved plugin)

**Examples:**

```plaintext
status:open category:support
status:closed created-after:30

```

## Locale filter

### `locale:`

Filter topics by locale

**Basic usage:**

```plaintext
locale:en # Topics in English
locale:en,fr # Topics in English OR French
-locale:fr # Exclude topics in French

```

## Sorting options

### `order:`

Sort results by different criteria

**Available sorts:**

- **`order:activity`** - Latest activity (default, descending)
- **`order:activity-asc`** - Oldest activity first
- **`order:created`** - Creation date (newest first)
- **`order:created-asc`** - Oldest first
- **`order:latest-post`** - Latest post date
- **`order:latest-post-asc`** - Oldest latest post
- **`order:likes`** - Most likes across all posts
- **`order:likes-asc`** - Least likes
- **`order:likes-op`** - Most likes on opening post
- **`order:likes-op-asc`** - Least likes on opening post
- **`order:posters`** - Most participants
- **`order:posters-asc`** - Least participants
- **`order:title`** - Alphabetical by title (Z→A)
- **`order:title-asc`** - Alphabetical by title (A→Z)
- **`order:views`** - Most views
- **`order:views-asc`** - Least views
- **`order:hot`** - Highest hot score
- **`order:hot-asc`** - Lowest hot score
- **`order:category`** - Category name
- **`order:category-asc`** - Reverse category name
- **`order:read`** - Last read date (authenticated users)
- **`order:read-asc`** - Oldest read first

## Advanced examples

**Find popular recent discussions:**

```plaintext
created-after:7 likes-min:10 order:likes

```

**Support topics needing attention:**

```plaintext
category:support status:open posts-max:3 created-after:7

```

**Your bookmarked development topics:**

```plaintext
category:dev in:bookmarked order:activity

```

**Exclude solved bug reports:**

```plaintext
category:bug -tag:solved status:open order:created

```

**High-engagement topics from specific users:**

```plaintext
created-by:admin,moderator likes-min:5 views-min:100

```

**Recent unlisted topics (staff only):**

```plaintext
status:unlisted created-after:30 order:created

```

## Autocomplete features

The filter input provides intelligent suggestions:

1. **Filter suggestions** - Shows available filters as you type
2. **Category autocomplete** - Suggests categories by name or slug
3. **Tag autocomplete** - Suggests tags with post counts
4. **Username autocomplete** - Suggests usernames with display names
5. **Date suggestions** - Offers quick date options (yesterday, last week, etc.)
6. **Prefix support** - Shows prefix options for categories and tags

## Tips and best practices

1. **Use autocomplete** - The filter interface provides intelligent suggestions as you type
2. **Combine filters** - Mix different filter types for precise results
3. **Share filter URLs** - Filter URLs are shareable - copy the URL to share your search
4. **Add useful filters to your sidebar** - Filter URLs can be added to your sidebar for easy access
5. **Use exclusion** - Use `-` prefix to exclude unwanted results
6. **Date shortcuts** - Use numbers for relative dates (30 = 30 days ago)
7. **Keyboard navigation** - Use arrow keys to navigate suggestions, Tab/Enter to select
8. **Quote special characters** - Use quotes for tag group names with spaces or special characters

## Creating custom sidebar links

You can add filter links to your sidebar as custom links:

1. Go to your sidebar settings
2. Add a custom link with a filter URL like `/filter?q=category:support status:open`
3. Give it a descriptive name like “Open Support Topics”

## Technical notes

- The filter uses full-text search for keywords combined with filters
- Minimum search term length applies to keyword searches
- Results are permission-aware - you only see topics you can access
- Filter queries are processed server-side for performance
- The feature supports plugin extensions for custom filters

## Additional resources

- [Topics list filter feature](https://meta.discourse.org/t/experimental-topics-list-filter-feature/263641)
- [Searching for content effectively](https://meta.discourse.org/t/searching-for-content-effectively/273328)
- [Using query strings to filter topic views](https://meta.discourse.org/t/using-query-strings-to-filter-topic-views/248224)

---

_[View the full topic](https://meta.discourse.org/t/filtering-topic-lists-in-discourse/375558)._
