InfoGrab DocsInfoGrab Docs

정확한 코드 검색

요약

정확한 코드 검색을 사용하면 정확한 일치 및 정규 표현식 모드를 사용하여 모든 GitLab 또는 특정 프로젝트에서 코드를 검색할 수 있습니다. 정확한 코드 검색은 Zoekt를 기반으로 하며 기능이 활성화된 그룹에서 기본적으로 사용됩니다.

히스토리
  • GitLab 15.9에서 index_code_with_zoekt 및 search_code_with_zoekt라는 플래그와 함께 베타로 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 16.6에서 GitLab.com 및 GitLab Self-Managed에서 활성화되었습니다.
  • GitLab 16.11에서 zoekt_cross_namespace_search라는 플래그와 함께 글로벌 코드 검색이 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.1에서 기능 플래그 index_code_with_zoekt 및 search_code_with_zoekt가 제거되었습니다.
  • GitLab 18.6에서 베타에서 제한된 가용성으로 변경되었습니다.
  • GitLab 18.7에서 기능 플래그 zoekt_cross_namespace_search가 제거되었습니다.
  • GitLab 19.5에서 정식 출시되었습니다.

정확한 코드 검색을 사용하면 정확한 일치 및 정규 표현식 모드를 사용하여 모든 GitLab 또는 특정 프로젝트에서 코드를 검색할 수 있습니다.

정확한 코드 검색은 Zoekt를 기반으로 하며 기능이 활성화된 그룹에서 기본적으로 사용됩니다.

정확한 코드 검색 사용#

사전 요건:

  • 정확한 코드 검색이 활성화되어 있어야 합니다:

정확한 코드 검색을 사용하려면:

  1. 상단 표시줄에서 Search or go to를 선택합니다.
  2. 검색 상자에 검색어를 입력합니다.
  3. 왼쪽 사이드바에서 Code를 선택합니다.

프로젝트 또는 그룹에서도 정확한 코드 검색을 사용할 수 있습니다.

사용 가능한 범위#

범위는 검색 중인 데이터 유형을 설명합니다. 정확한 코드 검색에 사용할 수 있는 범위는 다음과 같습니다:

범위 글로벌1, 2 그룹 프로젝트
코드 ❌ ✅ ✅

Zoekt 검색 API#

히스토리
  • GitLab 16.9에서 zoekt_search_api라는 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • GitLab 18.4에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그 zoekt_search_api가 제거되었습니다.

Zoekt 검색 API를 사용하면 정확한 코드 검색을 위해 검색 API를 사용할 수 있습니다. 대신 고급 검색 또는 기본 검색을 사용하려면 검색 유형 지정을 참조합니다.

검색 모드#

히스토리
  • GitLab 16.8에서 zoekt_exact_search라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.3에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그 zoekt_exact_search가 제거되었습니다.

GitLab에는 두 가지 검색 모드가 있습니다:

  • 정확한 일치 모드: 쿼리와 정확히 일치하는 결과를 반환합니다.
  • 정규 표현식 모드: 정규 및 부울 표현식을 지원합니다.

기본적으로 정확한 일치 모드가 사용됩니다. 정규 표현식 모드로 전환하려면 검색 상자 오른쪽에서 Use regular expression ([regular-expression])을 선택합니다.

구문#

이 표는 정확한 일치 및 정규 표현식 모드에 대한 몇 가지 예시 쿼리를 보여줍니다.

쿼리 정확한 일치 모드 정규 표현식 모드
"foo" "foo" foo
foo file:^doc/ /doc으로 시작하는 디렉토리의 foo /doc으로 시작하는 디렉토리의 foo
"class foo" "class foo" class foo
class foo class foo class 및 foo
foo or bar foo or bar foo 또는 bar
class Foo class Foo (대소문자 구분) class (대소문자 구분 없음) 및 Foo (대소문자 구분)
class Foo case:yes class Foo (대소문자 구분) class 및 Foo (모두 대소문자 구분)
foo -bar foo -bar foo이지만 bar는 아님
foo file:js js를 포함하는 이름의 파일의 foo js를 포함하는 이름의 파일의 foo
foo -file:test test를 포함하지 않는 이름의 파일의 foo test를 포함하지 않는 이름의 파일의 foo
foo lang:ruby Ruby 소스 코드의 foo Ruby 소스 코드의 foo
foo file:\.js$ .js로 끝나는 이름의 파일의 foo .js로 끝나는 이름의 파일의 foo
foo.*bar foo.*bar (리터럴) foo.*bar (정규 표현식)
sym:foo 클래스, 메서드, 변수 이름 같은 심볼의 foo 클래스, 메서드, 변수 이름 같은 심볼의 foo

알려진 문제#

  • 20_000개 미만의 트라이그램이 있는 1MB 미만의 파일만 검색할 수 있습니다. 자세한 내용은 이슈 455073을 참조합니다.
  • 프로젝트의 기본 브랜치에서만 정확한 코드 검색을 사용할 수 있습니다. 자세한 내용은 이슈 403307을 참조합니다.
  • 단일 줄의 여러 일치는 하나의 결과로 계산됩니다.
  • 줄 바꿈이 올바르게 표시되지 않는 결과가 발생하면 gitlab-zoekt를 버전 1.5.0 이상으로 업데이트합니다.

Footnotes

  1. 관리자는 글로벌 검색 범위를 비활성화할 수 있습니다. GitLab 18.6 이전에서는 GitLab Self-Managed에서 글로벌 검색을 활성화하려면 관리자가 zoekt_cross_namespace_search 기능 플래그도 활성화해야 했습니다. ↩

정확한 코드 검색

GitLab v19.5
Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed
원문 보기

요약

정확한 코드 검색을 사용하면 정확한 일치 및 정규 표현식 모드를 사용하여 모든 GitLab 또는 특정 프로젝트에서 코드를 검색할 수 있습니다. 정확한 코드 검색은 Zoekt를 기반으로 하며 기능이 활성화된 그룹에서 기본적으로 사용됩니다.

히스토리
  • GitLab 15.9에서 index_code_with_zoekt 및 search_code_with_zoekt라는 플래그와 함께 베타로 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 16.6에서 GitLab.com 및 GitLab Self-Managed에서 활성화되었습니다.
  • GitLab 16.11에서 zoekt_cross_namespace_search라는 플래그와 함께 글로벌 코드 검색이 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.1에서 기능 플래그 index_code_with_zoekt 및 search_code_with_zoekt가 제거되었습니다.
  • GitLab 18.6에서 베타에서 제한된 가용성으로 변경되었습니다.
  • GitLab 18.7에서 기능 플래그 zoekt_cross_namespace_search가 제거되었습니다.
  • GitLab 19.5에서 정식 출시되었습니다.

정확한 코드 검색을 사용하면 정확한 일치 및 정규 표현식 모드를 사용하여 모든 GitLab 또는 특정 프로젝트에서 코드를 검색할 수 있습니다.

정확한 코드 검색은 Zoekt를 기반으로 하며 기능이 활성화된 그룹에서 기본적으로 사용됩니다.

정확한 코드 검색 사용#

사전 요건:

  • 정확한 코드 검색이 활성화되어 있어야 합니다:

정확한 코드 검색을 사용하려면:

  1. 상단 표시줄에서 Search or go to를 선택합니다.
  2. 검색 상자에 검색어를 입력합니다.
  3. 왼쪽 사이드바에서 Code를 선택합니다.

프로젝트 또는 그룹에서도 정확한 코드 검색을 사용할 수 있습니다.

사용 가능한 범위#

범위는 검색 중인 데이터 유형을 설명합니다. 정확한 코드 검색에 사용할 수 있는 범위는 다음과 같습니다:

범위 글로벌1, 2 그룹 프로젝트
코드 ❌ ✅ ✅

Zoekt 검색 API#

히스토리
  • GitLab 16.9에서 zoekt_search_api라는 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • GitLab 18.4에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그 zoekt_search_api가 제거되었습니다.

Zoekt 검색 API를 사용하면 정확한 코드 검색을 위해 검색 API를 사용할 수 있습니다. 대신 고급 검색 또는 기본 검색을 사용하려면 검색 유형 지정을 참조합니다.

검색 모드#

히스토리
  • GitLab 16.8에서 zoekt_exact_search라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.3에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그 zoekt_exact_search가 제거되었습니다.

GitLab에는 두 가지 검색 모드가 있습니다:

  • 정확한 일치 모드: 쿼리와 정확히 일치하는 결과를 반환합니다.
  • 정규 표현식 모드: 정규 및 부울 표현식을 지원합니다.

기본적으로 정확한 일치 모드가 사용됩니다. 정규 표현식 모드로 전환하려면 검색 상자 오른쪽에서 Use regular expression ([regular-expression])을 선택합니다.

구문#

이 표는 정확한 일치 및 정규 표현식 모드에 대한 몇 가지 예시 쿼리를 보여줍니다.

쿼리 정확한 일치 모드 정규 표현식 모드
"foo" "foo" foo
foo file:^doc/ /doc으로 시작하는 디렉토리의 foo /doc으로 시작하는 디렉토리의 foo
"class foo" "class foo" class foo
class foo class foo class 및 foo
foo or bar foo or bar foo 또는 bar
class Foo class Foo (대소문자 구분) class (대소문자 구분 없음) 및 Foo (대소문자 구분)
class Foo case:yes class Foo (대소문자 구분) class 및 Foo (모두 대소문자 구분)
foo -bar foo -bar foo이지만 bar는 아님
foo file:js js를 포함하는 이름의 파일의 foo js를 포함하는 이름의 파일의 foo
foo -file:test test를 포함하지 않는 이름의 파일의 foo test를 포함하지 않는 이름의 파일의 foo
foo lang:ruby Ruby 소스 코드의 foo Ruby 소스 코드의 foo
foo file:\.js$ .js로 끝나는 이름의 파일의 foo .js로 끝나는 이름의 파일의 foo
foo.*bar foo.*bar (리터럴) foo.*bar (정규 표현식)
sym:foo 클래스, 메서드, 변수 이름 같은 심볼의 foo 클래스, 메서드, 변수 이름 같은 심볼의 foo

알려진 문제#

  • 20_000개 미만의 트라이그램이 있는 1MB 미만의 파일만 검색할 수 있습니다. 자세한 내용은 이슈 455073을 참조합니다.
  • 프로젝트의 기본 브랜치에서만 정확한 코드 검색을 사용할 수 있습니다. 자세한 내용은 이슈 403307을 참조합니다.
  • 단일 줄의 여러 일치는 하나의 결과로 계산됩니다.
  • 줄 바꿈이 올바르게 표시되지 않는 결과가 발생하면 gitlab-zoekt를 버전 1.5.0 이상으로 업데이트합니다.

Footnotes

  1. 관리자는 글로벌 검색 범위를 비활성화할 수 있습니다. GitLab 18.6 이전에서는 GitLab Self-Managed에서 글로벌 검색을 활성화하려면 관리자가 zoekt_cross_namespace_search 기능 플래그도 활성화해야 했습니다. ↩