Discourse에서 주제 목록 필터링하기

:bookmark: 이 가이드는 Discourse의 고급 주제 필터링 시스템, 완전한 쿼리 언어 구문, 필터 옵션, 그리고 /filter 경로를 효과적으로 사용하는 방법에 대해 설명합니다.

:person_raising_hand: 필요한 사용자 수준: 모든 사용자

Discourse 주제 필터 쿼리 언어 사용

Discourse의 주제 필터는 여러 기준에 기반하여 주제를 찾는 데 사용할 수 있는 강력한 쿼리 언어를 제공합니다. 이 고급 검색 인터페이스를 사용하면 필터를 조합하고, 결과를 정렬하며, 포럼의 어떤 콘텐츠에 대해서든 정확한 쿼리를 만들 수 있습니다.

필터 접근 방법

주제 필터에 접근하는 방법은 두 가지입니다:

직접 URL 접근:
Discourse 인스턴스에서 /filter 경로로 이동합니다 (예: https://meta.discourse.org/filter)

사이드바 내비게이션:
사이드바에서 "더 보기(More)"를 클릭한 다음 필터 옵션을 선택합니다

필터 인터페이스에는 입력하는 동안 사용 가능한 필터와 값을 제안하는 지능형 자동 완성 시스템이 포함되어 있습니다.

기본 쿼리 구문

필터는 다음 형식의 구조화된 구문을 사용합니다:

filter-name:value

여러 필터 조합:

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

일반 검색어 포함:

category:support ssl certificate error

이것은 "ssl certificate error"라는 단어가 포함된 “support” 카테고리의 주제를 검색합니다.

카테고리 필터

category: (별칭: categories:)

카테고리로 주제를 필터링합니다

기본 사용법:

category:support
category:dev,support          # dev 또는 support 카테고리의 주제
category:documentation:admins # documentation의 admins 하위 카테고리의 주제

고급 접두사:

  • = - 하위 카테고리가 없는 카테고리: =category:general
  • - - 카테고리 제외: -category:off-topic
  • -= - 하위 카테고리가 없는 카테고리 제외: -=category:meta

예시:

category:bug,feature          # bug 또는 feature 카테고리 포함 (하위 카테고리 포함)
=category:bug,feature         # bug 또는 feature 카테고리 포함 (하위 카테고리 제외)
-category:bug,feature         # bug 또는 feature 카테고리 제외 (하위 카테고리 포함)
-=category:bug,feature        # bug 또는 feature 카테고리 제외 (하위 카테고리 제외)

태그 필터

tag: (별칭: tags:)

태그로 주제를 필터링합니다 (태깅이 활성화되어 있어야 함)

기본 사용법:

tag:bug
tag:feature,enhancement       # feature 또는 enhancement 태그가 있는 주제
tag:bug+urgent               # bug AND urgent 태그가 모두 있는 주제

제외:

-tag:solved                  # solved 태그가 있는 주제 제외
-tag:bug+urgent              # bug와 urgent 태그가 모두 있는 주제 제외
-tag:bug,urgent              # bug 또는 urgent 태그가 있는 주제 제외

tag_group:

태그 그룹으로 필터링합니다

기본 사용법:

tag_group:moderation
tag_group:"tag group name"   # 공백이나 특수 문자가 있는 이름은 따옴표 사용
-tag_group:staff-only        # staff-only 그룹의 태그가 있는 주제 제외

날짜 필터

모든 날짜 필터는 특정 날짜(YYYY-MM-DD)와 상대적 일수를 모두 지원합니다:

활동 날짜

  • activity-before: - 마지막 활동이 해당 날짜 이전인 주제
  • activity-after: - 마지막 활동이 해당 날짜 이후인 주제

생성 날짜

  • created-before: - 해당 날짜 이전에 생성된 주제
  • created-after: - 해당 날짜 이후에 생성된 주제

최신 게시물 날짜

  • latest-post-before: - 최신 게시물이 해당 날짜 이전인 주제
  • latest-post-after: - 최신 게시물이 해당 날짜 이후인 주제

날짜 형식 예시:

created-after:2023-12-25     # 특정 날짜 (YYYY-MM-DD)
created-after:30             # 30일 전
created-after:1              # 어제
created-after:0              # 오늘

빠른 제안:

  • 1 - 어제
  • 7 - 지난주
  • 30 - 지난 달
  • 365 - 지난 해

사용자 필터

created-by:

주제 작성자(사용자 이름 또는 그룹 이름)로 필터링합니다

기본 사용법:

created-by:username
created-by:user1,user2       # user1 또는 user2가 작성한 주제
created-by:@username         # @ 접두사는 선택 사항입니다
created-by:me                
created-by:staff             # "staff" 그룹의 구성원이 생성한 주제

users: (별칭: user:)

특정 사용자가 참여(주제에 게시)한 주제를 필터링합니다

기본 사용법:

users:username               # username이 게시한 주제
users:user1,user2            # user1 또는 user2가 게시한 주제
users:user1+user2            # user1 AND user2가 모두 게시한 주제

제외:

-users:username              # username이 게시하지 않은 주제
-users:user1,user2           # user1도 user2도 게시하지 않은 주제
-users:user1+user2           # user1 또는 user2 중 적어도 한 명이 게시하지 않은 주제

group: (별칭: groups:)

특정 그룹의 구성원이 참여(주제에 게시)한 주제를 필터링합니다

기본 사용법:

group:staff                  # staff 그룹의 구성원이 게시한 주제
group:staff,moderators       # staff 또는 moderators의 구성원이 게시한 주제
group:staff+moderators       # staff AND moderators의 구성원이 모두 게시한 주제

개인 필터 (인증된 사용자만 가능)

in:

주제에 대한 개인적인 관계로 필터링합니다

사용 가능한 옵션:

  • in:pinned - 사용자에게 고정된 주제
  • in:bookmarked - 사용자가 북마크한 주제
  • in:watching - 사용자가 감시 중인 주제
  • in:tracking - 사용자가 추적 중인 주제
  • in:muted - 사용자가 음소거한 주제
  • in:normal - 일반 알림 수준의 주제
  • in:watching_first_post - 첫 게시물을 감시하는 카테고리 또는 태그의 주제
  • in:new - 새로운 활동이 있는 주제 (보지 못한 새로운 주제 + 읽지 않은 답변)
  • in:new-topics - 아직 보지 못한 새로운 주제
  • in:new-replies - 읽지 않은 답변이 있는 주제
  • in:unseen - 아직 확인하지 않은 주제

예시:

in:bookmarked category:support
in:watching,tracking         # 감시 중이거나 추적 중인 주제
in:unseen category:welcome   # welcome 카테고리의 미확인 주제
in:new order:created         # 모든 새로운 활동, 생성 날짜순 정렬

수치 필터

좋아요 필터

  • likes-min: - 모든 게시물 전체의 최소 총 좋아요 수
  • likes-max: - 모든 게시물 전체의 최대 총 좋아요 수
  • likes-op-min: - 시작 게시물에 대한 최소 좋아요 수
  • likes-op-max: - 시작 게시물에 대한 최대 좋아요 수

게시물 수 필터

  • posts-min: - 최소 게시물 수
  • posts-max: - 최대 게시물 수

참여자 필터

  • posters-min: - 최소 참여자 수
  • posters-max: - 최대 참여자 수

조회수 필터

  • views-min: - 최소 조회수
  • views-max: - 최대 조회수

예시:

likes-min:10                 # 좋아요가 최소 10개인 주제
posts-min:5 posts-max:20     # 게시물이 5~20개인 주제
views-min:100 likes-op-min:5 # 참여도가 높은 인기 주제

상태 필터

status:

주제 상태로 필터링합니다

사용 가능한 상태:

  • status:open - 열린 주제 (닫거나 아카이브되지 않음)
  • status:closed - 닫힌 주제
  • status:archived - 아카이브된 주제
  • status:listed - 목록에 표시(가시적)된 주제
  • status:unlisted - 목록에 표시되지 않는 주제
  • status:deleted - 삭제된 주제 (권한 필요)
  • status:public - 공개 주제 (제한되지 않은 카테고리)

플러그인 특정 상태:

  • status:solved - 해결된 주제 (Solved 플러그인 사용 시)
  • status:unsolved - 해결되지 않은 주제 (Solved 플러그인 사용 시)

예시:

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

로케일 필터

locale:

로케일로 주제를 필터링합니다

기본 사용법:

locale:en                    # 영어 주제
locale:en,fr                 # 영어 또는 프랑스어 주제
-locale:fr                   # 프랑스어 주제 제외

정렬 옵션

order:

다양한 기준으로 결과를 정렬합니다

사용 가능한 정렬:

  • order:activity - 최신 활동 (기본값, 내림차순)
  • order:activity-asc - 가장 오래된 활동부터
  • order:created - 생성 날짜 (최신부터)
  • order:created-asc - 가장 오래된부터
  • order:latest-post - 최신 게시물 날짜
  • order:latest-post-asc - 가장 오래된 최신 게시물
  • order:likes - 모든 게시물 전체의 가장 많은 좋아요
  • order:likes-asc - 가장 적은 좋아요
  • order:likes-op - 시작 게시물의 가장 많은 좋아요
  • order:likes-op-asc - 시작 게시물의 가장 적은 좋아요
  • order:posters - 가장 많은 참여자
  • order:posters-asc - 가장 적은 참여자
  • order:title - 제목 알파벳순 (Z→A)
  • order:title-asc - 제목 알파벳순 (A→Z)
  • order:views - 가장 많은 조회수
  • order:views-asc - 가장 적은 조회수
  • order:hot - 가장 높은 핫 점수
  • order:hot-asc - 가장 낮은 핫 점수
  • order:category - 카테고리 이름
  • order:category-asc - 카테고리 이름 역순
  • order:read - 마지막 읽은 날짜 (인증된 사용자)
  • order:read-asc - 가장 오래 읽은 것부터

고급 예시

인기 있는 최근 토론 찾기:

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

관심을 필요로 하는 지원 주제:

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

사용자가 북마크한 개발 주제:

category:dev in:bookmarked order:activity

해결된 버그 보고서 제외:

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

특정 사용자의 높은 참여도 주제:

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

최근 목록 미표시 주제 (스태프만 가능):

status:unlisted created-after:30 order:created

자동 완성 기능

필터 입력창은 지능형 제안을 제공합니다:

  1. 필터 제안 - 입력하는 동안 사용 가능한 필터 표시
  2. 카테고리 자동 완성 - 이름 또는 슬러그로 카테고리 제안
  3. 태그 자동 완성 - 게시물 수와 함께 태그 제안
  4. 사용자 이름 자동 완성 - 표시 이름과 함께 사용자 이름 제안
  5. 날짜 제안 - 빠른 날짜 옵션 제공 (어제, 지난주 등)
  6. 접두사 지원 - 카테고리와 태그의 접두사 옵션 표시

팁 및 모범 사례

  1. 자동 완성 사용 - 필터 인터페이스는 입력하는 동안 지능형 제안을 제공합니다
  2. 필터 조합 - 정확한 결과를 위해 다양한 필터 유형을 혼합합니다
  3. 필터 URL 공유 - 필터 URL은 공유할 수 있습니다 - URL을 복사하여 검색을 공유하세요
  4. 사이드바에 유용한 필터 추가 - 필터 URL을 사이드바에 추가하여 쉽게 접근할 수 있습니다
  5. 제외 사용 - 원치 않는 결과를 제외하려면 - 접두사를 사용합니다
  6. 날짜 단축키 - 상대 날짜에 숫자를 사용합니다 (30 = 30일 전)
  7. 키보드 내비게이션 - 화살표 키로 제안 사항을 탐색하고, Tab/Enter로 선택합니다
  8. 특수 문자 따옴표 처리 - 공백이나 특수 문자가 있는 태그 그룹 이름에는 따옴표를 사용합니다

사용자 정의 사이드바 링크 생성

사이드바에 필터 링크를 사용자 정의 링크로 추가할 수 있습니다:

  1. 사이드바 설정으로 이동합니다
  2. /filter?q=category:support status:open과 같은 필터 URL을 가진 사용자 정의 링크를 추가합니다
  3. "열린 지원 주제"와 같이 설명적인 이름을 부여합니다

기술적 참고 사항

  • 필터는 키워드 검색과 필터를 결합하여 전체 텍스트 검색을 사용합니다
  • 키워드 검색에는 최소 검색어 길이가 적용됩니다
  • 결과는 권한에 따라 조정됩니다 - 접근할 수 있는 주제만 볼 수 있습니다
  • 성능을 위해 필터 쿼리는 서버 측에서 처리됩니다
  • 이 기능은 사용자 정의 필터를 위한 플러그인 확장을 지원합니다

추가 리소스

11개의 좋아요

3 posts were split to a new topic: Build onebox support for topic filters

Is this possible? I know you can watch first posts only in a category, but how does that work on a topic?

3개의 좋아요

Probably needs clarification, I think it will find all the topics in categories you watch first post, will update

2개의 좋아요

Is there a way to combine it with the classic unread/new filters too?

2개의 좋아요

I think there is a hacky url, but I can add support for status:new-posts and topics tomorrows, not too hard

3개의 좋아요

I think I’d prefer in: because it’s a personal filter like bookmarks or tracking. The status ones refer to the topic status.

I would expect watching to return all the topics I am watching, not all topics from categories I am watching. Is that a wrong assumption? I find that confusing if watching first post refers to the category while the other statuses refer to topics.

2개의 좋아요

We may need another operator for this watching semantics

Agree on in, I may need to amend internals a bit to support multiple in clauses

I’d love a way to filter it by topics I have not yet viewed, and ones I have not yet replied to!

Is that possible?

For example, a filter for “Posts in the Introductions category that I have not yet replied to”.

2개의 좋아요

post:

https://github.com/discourse/discourse/pull/34506

in:unseen category:welcome -user:shauny

Or even if you don’t care about unseen you could use:

category:welcome -user:shauny

Is there support for things like in:first like in search? Thanks.

How would you see it working?

For example, showing all topics with a certain keyword to hide them (rather than using search).

This already works:

https://meta.discourse.org/filter?q=glitchy%20category%3Abug

And so does:

https://meta.discourse.org/filter?q=glitchy%20category%3Abug%20f

But I guess if there is some other keyword like in:first hiding that is not handled by filter we can pipe it over to search…

1개의 좋아요

Ah, I see - f searches for that in the first post. Couldn’t find it in the doc, had to look in here. Thanks!

1개의 좋아요

“종료될 토픽 타이머가 설정되어 있지 않음” 또는 "마지막 답변 후 종료될 토픽 타이머가 설정되어 있지 않음"과 같은 필터가 빠져 있습니다. 그런 기능이 실제로 존재하는 건지, 아니면 제가 찾지 못하고 있는 건지 궁금합니다.

현재 메타에서 지원 관련 토픽이 해결되지 않은 채로 오래 방치되는 것을 분류하기 위해 사이드바에서 링크된 필터를 사용하고 있습니다.

현재 필터 모습는 다음과 같습니다:

category:support status:open status:unsolved activity-before:7 assigned:nobody

이 필터는 꽤 잘 작동하지만, 확인하실 수 있듯이 토픽 타이머를 설정해 두었음에도 불구하고 더 이상 목록에 표시되고 싶지 않은 토픽들이 몇 개 포함되어 있습니다.

게시물 2개가 새 주제로 분리되었습니다: How can I filter a topic list by tag group with special chars

혹시 이 기능을 추가하셨나요?

읽지 않은 항목이 있는 토픽으로 필터링할 수 있으면 좋겠어요. 제 다른 필터들과 함께 사용할 수 있다면 그게 제 1순위 용도가 될 것 같습니다.

filtercategory에 사용하여 **cat-menu/sidebar (doc-menu와 유사)**를 왼쪽에 유지할 수 있을까요?

특정 텍스트로 주제를 필터링할 수 있나요? 검색을 사용할 수는 있지만, 주제 목록이 더 좋은 UI입니다.