검색어 언어

검색 쿼리 언어는 Google Issue Tracker에서 문제 검색을 실행하는 데 사용하는 문법입니다. 검색창에 입력하는 검색어에 언어를 사용할 수 있습니다. 고급 검색 도구를 사용하여 기준을 그래픽으로 선택할 수도 있습니다. 이 경우 고급 검색 도구를 닫으면 기준이 쿼리 언어로 변환됩니다.

쿼리 언어를 사용하면 다음 기준으로 검색할 수 있습니다.

  • 키워드
  • 필드:값 쌍

검색 시 키워드와 필드:값 쌍의 조합을 비롯한 여러 기준을 포함할 수 있습니다. 쿼리 언어 문법을 사용하면 논리 연산자, 괄호, 따옴표를 사용하여 기준이 고려되는 관계와 순서를 지정할 수 있습니다.

키워드 검색

키워드는 문제의 특정 입력란에서 검색하는 데 사용할 수 있는 텍스트 문자열입니다. 이러한 필드는 다음과 같습니다.

  • 제목
  • 댓글
  • 첨부파일 이름
  • 사용자가 포함된 필드 (예: Assignee 또는 CC)
  • 내부 ID 번호가 포함된 필드 (예: 문제의 구성요소 또는 핫리스트를 지정하는 필드)
  • 버전 번호가 포함된 필드
  • 맞춤 필드

키워드 검색 기준의 예는 문자열 configuration properties입니다. 검색에 이 기준을 입력하면 Issue Tracker는 모든 구성요소에서 전 세계적으로 문제를 검색하고 액세스 제어 권한에 따라 필드에 두 키워드가 모두 포함된 문제를 반환합니다. 키워드는 서로 다른 필드에 있거나 동일한 필드에 있을 수 있습니다.

키워드는 일부 기본 동의어와도 일치하므로 property를 검색하면 properties라는 단어가 포함된 버그도 추가로 발견될 수 있습니다. 그렇지 않으면 검색어를 하위 문자열로 취급하지 않고 전체 단어 토큰에만 일치시킵니다.

대부분의 특수문자는 검색을 실행하기 전에 키워드에서 삭제됩니다. 예를 들어 my-query_text와 같은 쿼리는 토큰 myquery_text로 분할되고 두 토큰과 일치하는 버그를 반환합니다.

Issue Tracker는 검색 기준을 구분하는 공백 문자를 암시적 AND 연산자로 취급합니다. 따옴표 (")를 사용하여 여러 단어로 구성된 문자열을 단일 키워드로 간주하도록 지정할 수 있습니다. Issue Tracker의 모든 검색은 따옴표 사용 여부와 관계없이 대소문자를 구분하지 않습니다.

필드:값 쌍 검색

검색 기준을 필드:값 쌍으로 지정할 수도 있습니다. 기본 문법은 [field]:[value]입니다. 텍스트 필드의 경우 이 구문은 지정된 필드에 값이 포함된 문제를 일치시킵니다. 다른 유형의 필드의 경우 필드 값이 상응하는 문제를 일치시킵니다.

예를 들어 title:latency를 검색하면 제목 입력란에 latency라는 단어가 포함된 문제가 검색됩니다. priority:p0를 검색하면 우선순위가 p0인 문제가 표시됩니다.

인식할 수 없는 필드는 키워드 검색으로 해석됩니다.

시간 및 개수 필드의 경우 콜론 문자 외에도 다른 관계 기호를 사용할 수 있습니다. 관계 연산자를 참고하세요.

any 및 none을 사용하는 특수 값 검색

선택적 필드는 특수 값 anynone으로 쿼리할 수 있습니다. any는 null이 아닌 모든 값과 일치합니다. none는 null 값과 일치합니다. 검색 쿼리 언어에서 지원되는 모든 필드 라벨 목록은 검색 쿼리 참조를 참고하세요.

논리 연산자

논리 연산자를 사용하면 두 개 이상의 기준을 지정하고 그 사이의 관계를 나타낼 수 있습니다. 따옴표 외부의 공백 문자는 암시적 AND 연산자로 작동합니다. Issue Tracker는 다음과 같은 추가 명시적 논리 연산자를 지원합니다.

연산자 대체 기호 설명
AND {whitespace} 문제에 두 가지 기준이 모두 포함된 경우 일치 star:true AND componentid:46046
또는 | 문제에 두 가지 기준 중 하나가 포함된 경우 일치합니다. type:(Bug|feature_request)
마세요 - 문제에 기준이 포함되지 않은 경우 일치 -assignee:jim
"..." 문제에 따옴표로 묶인 문구가 포함된 경우 일치합니다 (따옴표 안의 단어가 동일한 순서로 표시됨). comment:"We have a problem"
( ) 값 또는 검색 기준을 함께 그룹화합니다. status:open AND (priority:(p0|p1) OR severity:(s0|s1))

다음에 유의하세요.

  • AND, OR, NOT에는 모두 대문자를 사용해야 합니다.

  • NOT 연산자는 필드 이름 앞에 오는지 필드 값 앞에 오는지에 관계없이 동일한 의미를 갖습니다. 즉, -assignee:jimassignee:-jim는 동일합니다.

  • 괄호를 사용하여 검색어를 명확하게 그룹화합니다. 기본적으로 Issue Tracker는 NOT를 바로 뒤에 오는 용어와만 연결하고 OR를 괄호로 묶은 두 용어와 그룹화합니다. 예를 들어 검색어 title:(a OR b NOT c AND d)title:((a OR b) AND (NOT c) AND d)와 동일합니다.

대시

대시 문자 (-)는 검색어의 컨텍스트에 따라 다른 의미를 갖습니다.

  • Issue Tracker는 검색에서 단어 앞에 오는 대시를 NOT 연산자로 취급합니다. 예를 들어 검색 기준 -assignee:none 또는 assignee:-none는 할당자가 있는 모든 문제를 반환합니다.

  • Issue Tracker는 대시 문자로 연결된 문자열을 따옴표로 묶인 것으로 취급합니다. 예를 들어 검색 기준 state-of-the-art"state of the art"와 동일합니다.

  • Issue Tracker는 문제 필드에서 하이픈이 있는 단어를 공백으로 구분된 독립된 단어로 취급합니다. 즉, 문제의 제목에 state-of-the-art라는 단어가 포함되어 있고 검색어 title:(of art state the) 또는 title:("state of the art")를 실행하면 문제가 검색 결과의 일부로 반환됩니다.

관계 연산자

field:value 검색 기준의 기본 문법은 [field]:[value]입니다. 여기서 콜론 문자 (:)는 검색 결과에 문제가 반환되려면 지정된 필드가 지정된 값과 같거나 지정된 값을 포함해야 함을 지정합니다.

시간 값 (created, modified, resolved, verified 및 특정 맞춤 필드) 또는 개수 값 (duplicatecount, votecount, commentcount, cccount)이 포함된 필드는 다음과 같은 추가 관계 연산자를 지원합니다.

기호 설명
< 값이 검색 값보다 작거나 그보다 앞선 경우 문제와 일치합니다.
<= 값이 검색 값보다 작거나, 검색 값 앞에 있거나, 검색 값과 같은 경우 문제와 일치합니다.
> 값이 검색 값보다 크거나 그 뒤에 오는 경우 문제와 일치합니다.
>= 값이 검색 값보다 크거나 검색 값 뒤에 있거나 검색 값과 같은 경우 문제와 일치합니다.

시간 검색

검색 쿼리 언어는 시간 값이 포함된 필드를 일치시키기 위한 특수 문법을 제공합니다. 이렇게 하면 Issue Tracker에서 필요에 따라 일정 기간 또는 상대 시간을 검색할 수 있습니다.

절대 시간 형식

시간을 지정하는 형식은 다음과 같습니다.

[yyyy]-[MM]-[dd]T[HH]:[mm]:[ss].

이 형식에서 [yyyy]는 4자리 연도, [MM]는 2자리 월, [dd]는 2자리 일, [HH]는 24시간제의 2자리 시간, [mm]는 분, [ss]는 초입니다. 날짜 및 시간 설정에서 다른 시간대를 선택한 경우에도 검색의 모든 시간은 UTC로 해석됩니다.

특정 시간에 생성되거나 특정 시간 이전 또는 이후에 생성된 문제를 검색할 때 세부 수준을 지정할 수 있습니다. 예를 들어 created:2014-06를 지정하여 2014년 6월에 생성된 문제를 찾을 수 있습니다. 더 구체적으로 created:2014-06-03T04를 검색하여 2014년 6월 3일 4시 (오전 4시~5시, UTC)에 생성된 문제를 찾을 수 있습니다.

기간

두 개의 마침표 문자 (..)를 사용하여 필드:값 검색 기준에서 기간을 지정할 수 있습니다. 구문은 [field]:[start time]..[end time]입니다. 시작 시간과 종료 시간은 원하는 만큼 구체적으로 지정할 수 있습니다. 예를 들어 verified:2013..2015는 2013년, 2014년 또는 2015년에 확인된 모든 문제를 반환합니다.

상대 시간 형식

오늘로부터 며칠 전이라는 식으로 시간을 지정할 수도 있습니다. 이렇게 하려면 [days]d 형식을 사용합니다. 여기서 [days]은 검색 결과에 포함할 이전 일 수를 나타냅니다. 예를 들어 modified:5d를 사용하여 지난 5일 동안 수정된 문제를 찾을 수 있습니다.

상대 시간 형식을 사용할 때는 연산자가 created:5d와 같이 콜론 문자(:)여야 합니다. 범위에 해당하지 않는 문제를 찾으려면 NOT 또는 - 연산자를 사용하면 됩니다.

예를 들어 -verified:10d은 지난 10일 동안 확인되지 않은 문제를 반환합니다. 확인되었지만 지난 10일 동안 확인되지 않은 문제를 찾으려면 (-verified:10d) AND status:verified를 사용하면 됩니다.

일 수 산술을 사용한 '오늘' 검색

시간 검색에서 today 토큰을 현재 날짜 대신 사용할 수 있습니다. today+10today-2와 같은 일 산술을 지원합니다. today 토큰은 today-2..today+3과 같은 기간과 함께 사용할 수도 있습니다. 저장된 검색에서 today 토큰을 사용하면 쿼리를 재사용할 수 있습니다.

예:

  • created:today
  • modified<=today-10
  • nearestslo:today+10
  • resolved:2024-02-29..today+2
  • customfield1002:today..today+5

주의: 절대 시간 형식에 언급된 대로 Issue Tracker의 시간 검색은 UTC 기준입니다. today를 사용하는 검색에도 동일하게 적용됩니다.