고급 검색
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
고급 검색을 사용하면 GitLab 인스턴스 전체에서 필요한 것을 정확히 찾을 수 있습니다. 고급 검색으로 다음을 할 수 있습니다. 고급 검색은 다음 대상에서 동작합니다. 고급 검색을 사용하려면 다음과 같이 진행합니다. 프로젝트나 그룹 안에서도 고급 검색을 사용할 수 있습니다.
고급 검색을 사용하면 GitLab 인스턴스 전체에서 필요한 것을 정확히 찾을 수 있습니다.
고급 검색으로 다음을 할 수 있습니다.
- 모든 프로젝트에서 코드 패턴을 파악하여 공유 컴포넌트를 더 효율적으로 리팩터링합니다.
- 조직 전체의 코드베이스와 의존성에서 보안 취약점을 찾습니다.
- 모든 리포지터리에서 지원 중단된 함수나 라이브러리의 사용처를 추적합니다.
- 이슈, 머지 리퀘스트, 댓글에 묻혀 있는 논의를 찾습니다.
- 이미 있는 기능을 다시 만들지 않고 기존 해법을 찾습니다.
고급 검색은 다음 대상에서 동작합니다.
- Code
- Comments
- Commits
- Groups
- Work items
- Merge requests
- Milestones
- Projects
- Users
- Wikis
고급 검색 사용#
사전 요구 사항:
- 고급 검색이 활성화되어 있어야 합니다.
- GitLab.com 및 GitLab Dedicated에서는 유료 구독에서 고급 검색이 기본적으로 활성화되어 있습니다.
- GitLab Self-Managed에서는 관리자가 고급 검색을 활성화해야 합니다.
고급 검색을 사용하려면 다음과 같이 진행합니다.
- 상단 바에서 Search or go to를 선택합니다.
- 검색 상자에 검색어를 입력합니다.
프로젝트나 그룹 안에서도 고급 검색을 사용할 수 있습니다.
사용 가능한 범위#
히스토리
- 이슈의 댓글 검색이 GitLab 18.0에서
search_work_item_queries_notes라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - 이슈의 댓글 검색이 GitLab 18.1에서 GitLab.com에서 활성화되었습니다.
- 이슈의 댓글 검색이 GitLab 18.6에서 일반 제공되었습니다. 기능 플래그
search_work_item_queries_notes는 제거되었습니다. - 머지 리퀘스트의 댓글 검색이 GitLab 18.6에서
search_merge_request_queries_notes라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - 머지 리퀘스트의 댓글 검색이 GitLab 18.7에서 일반 제공되었습니다. 기능 플래그
search_merge_request_queries_notes는 제거되었습니다. - Groups 범위가 GitLab 19.4에서
elasticsearch_group_search라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 19.5에서 Groups 범위가 일반 제공되었습니다. 기능 플래그
elasticsearch_group_search가 제거되었습니다.
범위는 검색 대상 데이터의 유형을 나타냅니다. 고급 검색에서는 다음 범위를 사용할 수 있습니다.
| Scope | Global1, 2 | Group | Project |
|---|---|---|---|
| Code | ✅ | ✅ | ✅ |
| Comments | ✅ | ✅ | ✅ |
| Commits | ✅ | ✅ | ✅ |
| Groups3 | ✅ | ✅ | ❌ |
| Work items4 | ✅ | ✅ | ✅ |
| Merge requests4 | ✅ | ✅ | ✅ |
| Milestones5 | ✅ | ✅ | ✅ |
| Projects | ✅ | ✅ | ❌ |
| Users | ✅ | ✅ | ✅ |
| Wikis | ✅ | ✅ | ✅ |
문법#
고급 검색은 정확 일치 쿼리와 퍼지 쿼리를 모두 지원하는 simple_query_string을
사용합니다.
사용자를 검색할 때는 기본적으로 fuzzy 쿼리를 사용합니다.
simple_query_string으로 사용자 검색을 더 세밀하게 지정할 수 있습니다.
| 문법 | 설명 | 예시 |
|---|---|---|
" |
정확 일치 검색 | "gem sidekiq" |
~ |
퍼지 검색 | J~ Doe |
| |
또는 | display | banner |
+ |
그리고 | display +banner |
- |
제외 | display -banner |
* |
부분 일치 | bug error 50* |
\ |
이스케이프 | \*md |
# |
이슈 ID | #23456 |
! |
머지 리퀘스트 ID | !23456 |
코드 검색#
| 문법 | 설명 | 예시 |
|---|---|---|
filename: |
파일 이름 | filename:*spec.rb |
path: |
리포지터리 위치(전체 또는 부분 일치) | path:spec/workers/ |
extension: |
.을 뺀 파일 확장자(정확 일치만) |
extension:js |
blob: |
Git 오브젝트 ID(정확 일치만) | blob:998707* |
예시#
| 쿼리 | 설명 |
|---|---|
rails -filename:gemfile.lock |
gemfile.lock 파일을 제외한 모든 파일에서 rails를 반환합니다. |
RSpec.describe Resolvers -*builder |
builder로 시작하지 않는 RSpec.describe Resolvers를 반환합니다. |
bug | (display +banner) |
bug, 또는 display와 banner를 모두 포함하는 결과를 반환합니다. |
helper -extension:yml -extension:js |
.yml 또는 .js 확장자 파일을 제외한 모든 파일에서 helper를 반환합니다. |
helper path:lib/git |
lib/git* 경로의 모든 파일에서 helper를 반환합니다(예: spec/lib/gitlab). |
알려진 문제#
-
1 MB 미만인 파일만 검색할 수 있습니다. GitLab Self-Managed에서는 관리자가 최대 인덱싱 파일 크기에 제한을 설정할 수 있습니다.
-
고급 검색은 프로젝트의 기본 브랜치에서만 사용할 수 있습니다. 자세한 내용은 이슈 229966을 참고합니다.
-
검색 쿼리에 다음 문자가 포함되어서는 안 됩니다.
. , : ; / ` ' = ? $ & ^ | < > ( ) { } [ ] @ -
검색 결과에는 파일에서 처음 일치한 부분만 표시됩니다.
관련 주제#
Footnotes
-
관리자는 전역 검색 범위를 비활성화할 수 있습니다. GitLab Self-Managed에서는 제한된 인덱싱이 기본적으로 활성화되어 있으면 전역 검색을 사용할 수 없습니다. 관리자는 제한된 인덱싱에 대해 전역 검색을 활성화할 수 있습니다. ↩
-
GitLab.com에서는 코드, 커밋, 위키에 대해 전역 검색이 활성화되어 있지 않습니다. ↩
-
그룹 검색은 검색 중인 그룹 자체가 아니라 해당 그룹의 하위 그룹을 반환합니다. 이 범위가 결과를 반환하려면
backfill_groups_to_elasticsearch고급 검색 마이그레이션이 완료되어 있어야 합니다. ↩ -
그룹 마일스톤은 Elasticsearch에 인덱싱되지 않으므로 고급 검색은 프로젝트 마일스톤만 반환합니다. 자세한 내용은 이슈 428589를 참조합니다. ↩