# 효과적인 콘텐츠 검색 방법

**URL:** https://meta.discourse.org/t/searching-for-content-effectively/273328
**Category:** Using Discourse
**Tags:** search
**Created:** [7월 31, 2023, 9:36오전 UTC](https://meta.discourse.org/t/searching-for-content-effectively/273328 "2023-07-31T09:36:11Z")
**Posts on this page:** 1
**Page:** 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: [7월 31, 2023, 9:36오전 UTC](https://meta.discourse.org/t/searching-for-content-effectively/273328/1 "2023-07-31T09:36:11Z")

</div>

> 🔖 이 가이드는 필터, 옵션 및 고급 기법을 포함하여 Discourse의 검색 기능을 포괄적으로 설명합니다.
> 
> 🙋 필요한 사용자 수준: 모든 사용자

Discourse는 수많은 필터와 기준을 갖춘 강력한 검색 기능을 제공합니다. 고급 검색 양식을 사용하면 쿼리에 관련 구문이 자동으로 추가됩니다. 예를 들어, **[x] 내 메시지**를 선택하면 검색 쿼리에 `in:personal`이 추가됩니다.

이 가이드는 Discourse에서 사용할 수 있는 모든 검색 옵션과 기능을 다루며, 검색 기능을 사용하는 데 유용한 팁과 요령을 제공합니다.

## 필터

Discourse는 검색 결과를 정제하는 데 도움이 되는 다양한 필터를 제공합니다. 사용 가능한 필터의 포괄적인 목록은 다음과 같습니다:

### 검색 범위 필터

| 구문 | 설명 |
| --- | --- |
| `in:title` | 제목에 검색어가 포함된 토픽을 반환합니다 |
| `in:first` | 토픽의 첫 번째 게시물만 반환합니다 |
| `in:replies` | 답글인 게시물만 반환하며, 토픽의 최초 작성자(OP) 게시물은 제외합니다 |
| `in:all-posts` | 동일한 토픽 내에서 여러 게시물이 일치하더라도 쿼리와 일치하는 모든 게시물을 반환합니다 |
| `in:all` | 공개 토픽과 개인 메시지의 게시물을 반환합니다 |
| `in:personal` | 개인 메시지 내에서 검색합니다 |
| `in:personal-direct` | 두 사용자 간의 개인 메시지에 있는 게시물만 반환합니다 |
| `in:all-pms` | ℹ _관리자 전용_   
 사용자가 포함된 메시지가 아니더라도 모든 개인 메시지의 게시물을 반환합니다 |
| `topic:topic_id` | 특정 토픽 내의 게시물을 반환합니다 |
| `include:unlisted` | ℹ _신뢰 수준 4 및 스태프 전용_   
 목록에 없는 토픽의 게시물을 포함하여 게시물을 반환합니다 |

### 게시물 유형 필터

| 구문 | 설명 |
| --- | --- |
| `in:regular` | 일반 게시물만 반환합니다 (위스퍼, 작은 작업 게시물, 스태프 색상 게시물을 제외) |
| `in:whisper` | ℹ _위스퍼 접근 권한이 있는 사용자 전용_   
 위스퍼 게시물을 반환합니다 |
| `in:pinned` | 고정된 토픽의 게시물을 반환합니다 |
| `in:wiki` | 위키 게시물을 반환합니다 |
| `with:images` | 이미지를 포함하는 게시물을 반환합니다 |
| `in:bot` | 봇 사용자의 게시물을 반환합니다 |
| `in:human` | 일반 사용자의 게시물을 반환합니다 |

### 사용자 및 그룹 필터

| 구문 | 설명 |
| --- | --- |
| `@username` | `username`의 게시물을 반환합니다 |
| `user:username` | `username`의 게시물을 반환합니다 |
| `created:@username` | `username`이 생성한 토픽의 게시물을 반환합니다 |
| `group:group_name` | `group_name` 그룹 내 사용자의 게시물을 반환합니다 |
| `group_messages:group_name` | `group_name` 그룹으로 전송된 개인 메시지의 게시물을 반환합니다 |
| `personal_messages:username` | ℹ _관리자 전용_   
 지정된 사용자의 개인 메시지의 게시물을 반환합니다 |
| `badge:name_or_id` | 특정 배지 수여와 연결된 게시물을 반환합니다 |

### 사용자 특정 필터 (로그인 상태)

| 구문 | 설명 |
| --- | --- |
| `in:seen` | 본 적이 있는 게시물을 반환합니다 |
| `in:unseen` | 본 적이 없는 게시물을 반환합니다 |
| `in:watching` | 감시 중인 토픽의 게시물을 반환합니다 |
| `in:tracking` | 추적 중인 토픽의 게시물을 반환합니다 |
| `in:bookmarks` | 북마크한 게시물을 반환합니다 |
| `in:likes` | 좋아요를 누른 게시물을 반환합니다 |
| `in:posted` | 자신의 게시물을 반환합니다 |
| `in:created` | 자신이 생성한 토픽의 첫 번째 게시물을 반환합니다 |

### 카테고리 및 태그 필터

| 구문 | 설명 |
| --- | --- |
| `categories:category1,category2` | `category1` 및 `category2` 카테고리의 게시물을 반환합니다 |
| `#slug` | 컨텍스트에 따라 카테고리 슬러그 또는 태그 이름으로 검색합니다 |
| `tags:tag1,tag2,tag3` | `tag1`, `tag2`, 또는 `tag3` 태그가 지정된 게시물을 반환합니다 (쉼표 = OR) |
| `tags:tag1+tag2+tag3` | `tag1`, `tag2`, 및 `tag3` 태그가 모두 지정된 게시물을 반환합니다 (플러스 = AND) |
| `-tags:tag1,tag2,tag3` | `tag1`, `tag2`, 또는 `tag3` 태그가 지정되지 않은 게시물을 반환합니다 |
| `in:tagged` | 최소 하나의 태그가 있는 토픽의 게시물을 반환합니다 |
| `in:untagged` | 태그가 없는 토픽의 게시물을 반환합니다 |

### 게시물 및 조회수 필터

| 구문 | 설명 |
| --- | --- |
| `posts_count:X` | 정확히 X개의 게시물이 있는 토픽의 게시물을 반환합니다 |
| `min_posts:X` | 최소 X개의 게시물이 있는 토픽의 게시물을 반환합니다 |
| `max_posts:X` | 최대 X개의 게시물이 있는 토픽의 게시물을 반환합니다 |
| `min_views:X` | 최소 X번 조회된 토픽의 게시물을 반환합니다 |
| `max_views:X` | 최대 X번 조회된 토픽의 게시물을 반환합니다 |

### 날짜 필터

| 구문 | 설명 |
| --- | --- |
| `before:YYYY-MM-DD` | 지정된 날짜 이전에 생성된 게시물을 반환합니다 |
| `after:YYYY-MM-DD` | 지정된 날짜 이후에 생성된 게시물을 반환합니다 |
| `before:YYYY-MM` | 지정된 달 이전에 생성된 게시물을 반환합니다 |
| `after:YYYY-MM` | 지정된 달부터 이후에 생성된 게시물을 반환합니다 |
| `before:YYYY` | 지정된 연도 이전에 생성된 게시물을 반환합니다 |
| `after:YYYY` | 지정된 연도부터 이후에 생성된 게시물을 반환합니다 |
| `before:X` | X일 이상 지난 시점에 생성된 게시물을 반환합니다 (X = 1–999) |
| `after:X` | 최근 X일 이내에 생성된 게시물을 반환합니다 (X = 1–999) |
| `before:day_of_week` | 지정된 요일의 시작 전에 생성된 게시물을 반환합니다 |
| `after:day_of_week` | 지정된 요일의 시작부터 이후에 생성된 게시물을 반환합니다 |
| `before:month_name` | 지정된 달 이전에 생성된 게시물을 반환합니다 (예: `before:january` 또는 `before:jan`) |
| `after:month_name` | 지정된 달부터 이후에 생성된 게시물을 반환합니다 |
| `before:yesterday` | 어제 이전에 생성된 게시물을 반환합니다 |
| `after:yesterday` | 어제 이후에 생성된 게시물을 반환합니다 |

### 상태 필터

| 구문 | 설명 |
| --- | --- |
| `status:open` | 닫히거나 아카이브되지 않은 토픽의 게시물을 반환합니다 |
| `status:closed` | 닫힌 토픽의 게시물을 반환합니다 |
| `status:archived` | 아카이브된 토픽의 게시물을 반환합니다 |
| `status:noreplies` | 답글이 없는 토픽의 게시물을 반환합니다 |
| `status:single_user` | 한 사용자의 게시물만 있는 토픽의 게시물을 반환합니다 |
| `status:public` | 공개 카테고리에 있는 토픽의 게시물을 반환합니다 |

### 파일 유형 필터

| 구문 | 설명 |
| --- | --- |
| `filetypes:ext1,ext2,ext3` | `ext1`, `ext2`, 또는 `ext3` 파일 확장자의 업로드가 포함된 게시물을 반환합니다 |

### 언어 필터

| 구문 | 설명 |
| --- | --- |
| `locale:language_code` | 해당 언어로 작성된 게시물을 반환합니다, 예: `locale:en`, `locale:en_US`, `locale:en-gb` |
| `locale:any` | 로케일이 설정된 게시물을 반환합니다 |
| `locale:none` | 로케일이 없는 게시물을 반환합니다 |

## 정렬

다음의 정렬 옵션을 사용하여 검색 결과를 정렬할 수 있습니다:

| 구문 | 설명 |
| --- | --- |
| `order:latest` | 결과를 최신부터 가장 오래된 순으로 정렬합니다 |
| `order:oldest` | 결과를 가장 오래된부터 최신 순으로 정렬합니다 |
| `order:latest_topic` | 토픽 생성 날짜 기준으로 최신부터 가장 오래된 순으로 정렬합니다 |
| `order:oldest_topic` | 토픽 생성 날짜 기준으로 가장 오래된부터 최신 순으로 정렬합니다 |
| `order:views` | 조회수 기준으로 정렬합니다 |
| `order:likes` | 좋아요 수 기준으로 정렬합니다 |
| `order:read` | (로그인 사용자만) 마지막으로 토픽을 방문한 날짜 기준으로 정렬합니다 |

## 별칭

Discourse는 검색을 쉽게 만들기 위해 여러 별칭을 제공합니다:

| 구문 | 동치 |
| --- | --- |
| `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:` |
| `#` | 컨텍스트에 따라 카테고리와 태그 모두에 사용할 수 있습니다 |
| `user:` | `@` |
| `@me` | `@your_own_username` |

## 정확한 단어 검색

Discourse는 관련 단어를 찾기 위해 [Stemming](https://en.wikipedia.org/wiki/Stemming)이라는 기법을 사용합니다. 이는 종종 유용하지만, 정확한 단어를 검색하고 싶은 경우가 있을 수 있습니다. 이를 수행하려면 공백과 큰따옴표로 단어를 감싸야 합니다. 예: `" term "`.

이를 통해 “term” 단어만 검색하고 다른 관련 단어를 제외합니다.

> ℹ 공백이 검색어의 일부로 간주되므로, 게시물의 첫 번째 또는 마지막 단어인 "term"은 앞뒤로 공백이 없기 때문에 반환되지 않습니다.

### 예시: @언급 검색

현재 @언급을 직접 검색하는 것은 지원되지 않습니다. 그러나 정확한 단어 검색 방법을 사용하여 이를 달성할 수 있습니다:

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

> ℹ `%20`은 URL에서 공백이 인코딩되는 방식이고, `%40`은 `@` 기호가 인코딩되는 방식이기 때문에 작동합니다.

이 쿼리는 `@username` (공백으로 감싸진)을 구체적으로 찾습니다.

## 검색 옵션 결합

더 구체적인 쿼리를 만들기 위해 여러 검색 옵션을 결합할 수 있습니다. 예를 들어:

- `status:open category:support tag:urgent after:2023-01-01 order:latest`  
이는 2023년 1월 1일 이후에 생성된 긴급 태그가 지정된 공개 지원 토픽을 검색하고, 결과를 최신 게시물 순으로 정렬합니다.

- `@jane_doe in:watching min_posts:5 with:images`  
이는 자신이 감시 중인 토픽에서 최소 5개의 게시물이 있고 이미지를 포함하는 Jane Doe의 게시물을 검색합니다.

## 권한 및 제한

일부 고급 검색 옵션은 특정 사용자 권한이 필요하거나 특정 사용자 역할로 제한될 수 있습니다. 예를 들어:

- `in:all-pms`는 일반 사용자나 모더레이터가 아닌 관리자만 사용할 수 있습니다.
- `personal_messages:username`은 관리자만 사용할 수 있습니다.
- `in:whisper`는 위스퍼 접근 권한이 필요합니다.
- `include:unlisted`는 신뢰 수준 4 사용자와 스태프만 사용할 수 있습니다.

고급 검색 옵션을 사용할 때 항상 자신의 사용자 역할과 권한을 고려하십시오.

## 검색 대안: 토픽 목록 필터

많은 필터 유형을 지원하는 [/filter](https://meta.discourse.org/filter) 기능이 있습니다. 공식 토픽에서 더 자세히 알아볼 수 있습니다: [Topics list filter feature](https://meta.discourse.org/t/experimental-topics-list-filter-feature/263641)

## 소스 파일

이 옵션들을 더 기술적으로 살펴보고 싶다면, 모든 검색 필터와 매개변수는 [`search.rb`](https://github.com/discourse/discourse/blob/main/lib/search.rb#L369)에서 찾을 수 있습니다 - `advanced_filter` 메서드를 찾아보세요.

## 추가 팁

1. #bug와 같은 태그 언급도 검색할 수 있습니다: [https://meta.discourse.org/search?q=“%20%23bug”](https://meta.discourse.org/search?q=%22%20%23bug%22)

2. 일부 필터는 플러그인에 의해 추가될 수 있습니다. 예를 들어, Solved 플러그인은 다음을 추가합니다:

3. Topic Voting 플러그인은 다음을 추가합니다:

4. Assign 플러그인은 다음을 추가합니다:

5. Poll 플러그인은 다음을 추가합니다:

> 💡 필요에 맞는 가장 효과적인 검색 전략을 찾기 위해 다양한 필터와 옵션 조합을 실험해 보세요.
