search 연산자
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
여러 테이블 및 열에서 텍스트 패턴을 검색합니다.
참고 항목
검색하려는 특정 테이블 및 열을 알고 있는 경우 공용 구조체 및 위치 연산자를 사용하는 것이 더 성능이 좋습니다. search
많은 수의 테이블과 열을 검색할 때 연산자가 느려질 수 있습니다.
구문
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
T | string |
테이블 이름 , 공용 구조체 연산자 또는 테이블 형식 쿼리의 결과와 같이 검색할 테이블 형식 데이터 원본입니다. TableSources와 함께 표시할 수 없습니다. | |
CaseSensitivity | string |
대/소문자 구분과 관련하여 has 모든 string 스칼라 연산자의 동작을 제어하는 플래그입니다. 유효한 값은 default , case_insensitive . case_sensitive 기본 동작은 대/소문자를 구분하지 않으므로 옵션 default 과 case_insensitive 동의어입니다. |
|
TableSources | string |
검색에 참여할 "와일드카드" 테이블 이름의 쉼표로 구분된 목록입니다. 목록에는 공용 구조체 연산자 목록과 동일한 구문이 있습니다. TabularSource와 함께 표시할 수 없습니다. | |
SearchPredicate | string |
✔️ | 입력의 모든 레코드에 대해 계산할 부울 식입니다. 반환 true 되는 경우 레코드가 출력됩니다. 검색 조건자 구문을 참조 하세요. |
검색 조건자 구문
SearchPredicate를 사용하면 테이블의 모든 열에서 특정 용어를 검색할 수 있습니다. 검색 용어에 적용할 연산자는 다음 표와 같이 용어의 와일드카드 별표(*
)의 존재 및 배치에 따라 달라집니다.
리터럴 | 연산자 |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
검색을 특정 열로 제한하거나, 용어 일치 대신 정확한 일치 항목을 찾거나, 정규식으로 검색할 수도 있습니다. 이러한 각 사례에 대한 구문은 다음 표에 나와 있습니다.
구문 | 설명 |
---|---|
ColumnName: StringLiteral |
이 구문을 사용하여 검색을 특정 열로 제한할 수 있습니다. 기본 동작은 모든 열을 검색하는 것입니다. |
ColumnName== StringLiteral |
이 구문을 사용하여 문자열 값에 대한 열의 정확한 일치 항목을 검색할 수 있습니다. 기본 동작은 용어 일치를 찾는 것입니다. |
StringLiteral 열 matches regex |
이 구문은 StringLiteral이 정규식 패턴인 정규식 일치를 나타냅니다. |
부울 식을 사용하여 조건을 결합하고 더 복잡한 검색을 만듭니다. 예를 들어 "error" and x==123
열에 용어 error
가 있고 열의 값 123
이 있는 레코드를 검색합니다 x
.
참고 항목
TabularSource와 TableSource를 모두 생략하면 범위 내 데이터베이스의 모든 무제한 테이블과 뷰를 검색합니다.
검색 조건자 구문 예제
# | 구문 | 의미(해당 where ) |
설명 |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | where *에 "err"이 있습니다. |
|
3 | search col:"err" |
where col has "err" |
|
4 | search col=="err" |
where col=="err" |
|
5 | search "err*" |
where * hasprefix "err" |
|
6 | search "*err" |
where * hassuffix "err" |
|
7 | search "*err*" |
where * contains "err" |
|
8 | search "Lab*PC" |
where * matches regex @"\bLab.*PC\b" |
|
9 | search * |
where 0==0 |
|
10 | search col matches regex "..." |
where col matches regex "..." |
|
11 | search kind=case_sensitive |
모든 문자열 비교는 대/소문자를 구분합니다. | |
12 | search "abc" and ("def" or "hij") |
where * has "abc" and (* has "def" or * has hij") |
|
13 | search "err" or (A>a and A<b) |
where * has "err" or (A>a and A<b) |
설명
find 연산자와 달리 연산자는 search
다음을 지원하지 않습니다.
withsource=
: 출력에는 항상 값이 각 레코드가 검색된 테이블 이름(또는 원본이 테이블이 아니라 복합 식인 경우 시스템 생성 이름)인 형식string
의 열$table
이 포함됩니다.project=
,project-smart
: 출력 스키마는 출력 스키마와project-smart
동일합니다.
예제
전역 용어 검색
범위 내 데이터베이스의 모든 무제한 테이블 및 뷰에서 용어를 검색합니다.
search "Green"
출력에는 , Products
및 SalesTable
테이블의 레코드가 Customers
포함됩니다. 레코드는 Customers
성이 "Green"인 모든 고객을 표시하고 Products
SalesTable
레코드에는 "Green"이라는 언급이 있는 제품이 표시됩니다.
조건부 전역 용어 검색
범위 내 데이터베이스의 모든 무제한 테이블 및 뷰에 대해 두 용어가 모두 일치하는 레코드를 검색합니다.
search "Green" and ("Deluxe" or "Proseware")
특정 테이블 검색
테이블에서만 검색합니다 Customers
.
search in (Products) "Green"
대/소문자 구분 검색
범위 내 데이터베이스의 모든 무제한 테이블 및 뷰에서 대/소문자를 구분하는 용어와 일치하는 레코드를 검색합니다.
search kind=case_sensitive "blue"
특정 열 검색
범위 내 데이터베이스의 모든 무제한 테이블 및 뷰에 대해 "FirstName" 및 "LastName" 열에서 용어를 검색합니다.
search FirstName:"Aaron" or LastName:"Hughes"
타임스탬프별 검색 제한
지정된 날짜보다 큰 날짜가 있는 레코드에 용어가 표시되는 경우 범위 내 데이터베이스의 모든 무제한 테이블 및 뷰에서 용어를 검색합니다.
search "Hughes" and DateKey > datetime('2009-01-01')
성능 팁
# | 팁 | 좋아하다 | 위 |
---|---|---|---|
1 | 여러 연속 search 연산자보다 단일 search 연산자를 사용하는 것이 좋습니다. |
search "billg" and ("steveb" or "satyan") |
검색 "billg" | "steveb" 또는 "satyan" 검색 |
2 | 연산자 내에서 필터링하는 것이 좋습니다.search |
search "billg" and "steveb" |
검색 * | where *에는 "billg"가 있고 * 에는 "steveb"가 있습니다. |