검색 쿼리 언어는 Google Issue Tracker에서 문제 검색을 실행하는 데 사용하는 문법입니다. 검색창에 입력하는 검색어에 언어를 사용할 수 있습니다. 고급 검색 도구를 사용하여 기준을 그래픽으로 선택할 수도 있습니다. 이 경우 고급 검색 도구를 닫으면 기준이 쿼리 언어로 변환됩니다.
쿼리 언어를 사용하면 다음 기준으로 검색할 수 있습니다.
- 키워드
- 필드:값 쌍
검색 시 키워드와 필드:값 쌍의 조합을 비롯한 여러 기준을 포함할 수 있습니다. 쿼리 언어 문법을 사용하면 논리 연산자, 괄호, 따옴표를 사용하여 기준이 고려되는 관계와 순서를 지정할 수 있습니다.
키워드 검색
키워드는 문제의 특정 입력란에서 검색하는 데 사용할 수 있는 텍스트 문자열입니다. 이러한 필드는 다음과 같습니다.
- 제목
- 댓글
- 첨부파일 이름
- 사용자가 포함된 필드 (예: Assignee 또는 CC)
- 내부 ID 번호가 포함된 필드 (예: 문제의 구성요소 또는 핫리스트를 지정하는 필드)
- 버전 번호가 포함된 필드
- 맞춤 필드
키워드 검색 기준의 예는 문자열 configuration properties
입니다.
검색에 이 기준을 입력하면 Issue Tracker는 모든 구성요소에서 전 세계적으로 문제를 검색하고 액세스 제어 권한에 따라 필드에 두 키워드가 모두 포함된 문제를 반환합니다. 키워드는 서로 다른 필드에 있거나 동일한 필드에 있을 수 있습니다.
키워드는 일부 기본 동의어와도 일치하므로 property
를 검색하면 properties
라는 단어가 포함된 버그도 추가로 발견될 수 있습니다. 그렇지 않으면 검색어를 하위 문자열로 취급하지 않고 전체 단어 토큰에만 일치시킵니다.
대부분의 특수문자는 검색을 실행하기 전에 키워드에서 삭제됩니다.
예를 들어 my-query_text
와 같은 쿼리는 토큰 my
및 query_text
로 분할되고 두 토큰과 일치하는 버그를 반환합니다.
Issue Tracker는 검색 기준을 구분하는 공백 문자를 암시적 AND
연산자로 취급합니다. 따옴표 ("
)를 사용하여 여러 단어로 구성된 문자열을 단일 키워드로 간주하도록 지정할 수 있습니다. Issue Tracker의 모든 검색은 따옴표 사용 여부와 관계없이 대소문자를 구분하지 않습니다.
필드:값 쌍 검색
검색 기준을 필드:값 쌍으로 지정할 수도 있습니다. 기본 문법은 [field]:[value]
입니다. 텍스트 필드의 경우 이 구문은 지정된 필드에 값이 포함된 문제를 일치시킵니다. 다른 유형의 필드의 경우 필드 값이 상응하는 문제를 일치시킵니다.
예를 들어 title:latency
를 검색하면 제목 입력란에 latency
라는 단어가 포함된 문제가 검색됩니다. priority:p0
를 검색하면 우선순위가 p0
인 문제가 표시됩니다.
인식할 수 없는 필드는 키워드 검색으로 해석됩니다.
시간 및 개수 필드의 경우 콜론 문자 외에도 다른 관계 기호를 사용할 수 있습니다. 관계 연산자를 참고하세요.
any 및 none을 사용하는 특수 값 검색
선택적 필드는 특수 값 any
및 none
으로 쿼리할 수 있습니다. 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:jim
와assignee:-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+10
및 today-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
를 사용하는 검색에도 동일하게 적용됩니다.