다음을 통해 공유


search 연산자

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

여러 테이블 및 열에서 텍스트 패턴을 검색합니다.

참고 항목

검색하려는 특정 테이블 및 열을 알고 있는 경우 공용 구조체위치 연산자를 사용하는 것이 더 성능이 좋습니다. search 많은 수의 테이블과 열을 검색할 때 연산자가 느려질 수 있습니다.

구문

[T|] search [kind= CaseSensitivity ] [in (TableSources)] SearchPredicate

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
T string 테이블 이름 , 공용 구조체 연산자 또는 테이블 형식 쿼리의 결과와 같이 검색할 테이블 형식 데이터 원본입니다. TableSources함께 표시할 수 없습니다.
CaseSensitivity string 대/소문자 구분과 관련하여 has모든 string 스칼라 연산자의 동작을 제어하는 플래그입니다. 유효한 값은 default, case_insensitive. case_sensitive 기본 동작은 대/소문자를 구분하지 않으므로 옵션 defaultcase_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 .

참고 항목

TabularSourceTableSource를 모두 생략하면 범위 내 데이터베이스의 모든 무제한 테이블과 뷰를 검색합니다.

검색 조건자 구문 예제

# 구문 의미(해당 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 다음을 지원하지 않습니다.

  1. withsource=: 출력에는 항상 값이 각 레코드가 검색된 테이블 이름(또는 원본이 테이블이 아니라 복합 식인 경우 시스템 생성 이름)인 형식 string 의 열 $table 이 포함됩니다.
  2. project=, project-smart: 출력 스키마는 출력 스키마와 project-smart 동일합니다.

예제

범위 내 데이터베이스의 모든 무제한 테이블 및 뷰에서 용어를 검색합니다.

search "Green"

출력에는 , ProductsSalesTable 테이블의 레코드가 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"가 있습니다.