Searching for content effectively

Discourse
Mon, 31 Jul 2023 09:36:11 +0000
Using Discourse

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 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”

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 feature is available that supports many filter types. You can learn more on the official topic: Topics list filter feature

Source Files

For a more technical look at these options, all search filters and parameters can be found in search.rb - 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”

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

status:solved: Returns posts from solved topics

status:unsolved: Returns posts from unsolved topics in categories allowing solved marking

3. The Topic Voting plugin adds:

order:votes: Sort results by number of votes on the topic containing the post

min_vote_count:X: Returns posts from topics with at least X votes

4. The Assign plugin adds:

in:assigned: Returns posts from topics assigned to someone

in:unassigned: Returns posts from topics not assigned to anyone

assigned:username: Returns posts from topics assigned to username

5. The Poll plugin adds:

in:polls: Returns posts containing polls

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 Thursday, March 26, 2026 10:56 PM UTC

Last checked by @hugh Thursday, July 25, 2024 1:14 AM UTC
Check document (clicca per ulteriori dettagli)

5 messaggi - 3 partecipanti