GitHubContribute in GitHub: オンラインでの編集

! contains 演算子

大/小文字の区別があるストリングを含まないデータのレコード・セットをフィルタリングします。 contains は、3 文字以上の 用語 ではなく文字を検索します。 照会では、列の値がスキャンされます。これは、用語索引で用語を検索するよりも時間がかかります。

以下の表に、 contains 演算子の比較を示します。

オペレーター 説明 大文字と小文字を区別する 例 ( trueが生成されます)
contains RHS は、LHS のサブシーケンスとして発生します。 いいえ "Success Audit" contains "audit"
!contains LHS で RHS が発生しない いいえ "Success Audit" !contains "auditing"
contains_cs RHS は、LHS のサブシーケンスとして発生します。 はい "Success Audit" contains_cs "Audit"
!contains_cs LHS で RHS が発生しない はい "Success Audit !contains_cs "auD"

上記の表では、以下の省略形が使用されています。

  • RHS = 式の右側。
  • LHS = 式の左側。

その他の演算子について、および照会に最も適した演算子を判別する方法について詳しくは、 データ・タイプ・ストリング演算子を参照してください。

大/小文字を区別しない演算子は、現在 ASCII テキストでのみサポートされています。 非 ASCII 比較の場合は、 tolower () 関数を使用します。

パフォーマンスのヒント

パフォーマンスは、検索のタイプとデータの構造によって異なります。

結果をより速くするには、演算子の大/小文字を区別するバージョンを使用します。例えば、 containsではなく、 contains_csを使用します。

フィールドの先頭または末尾に非英数字文字でバインドされたシンボルまたは英数字ワードが存在するかどうかをテストする場合は、 has または inを使用します。 また、 hascontainsstartswith、または endswithよりも速く動作しますが、正確ではなく、不要なレコードを提供する可能性があります。

構文

大/小文字を区別しない構文

T | where !contains ()

引数

  • T -レコードがフィルタリングされる表形式の入力。
  • Column -フィルタリングする列。
  • -スカラーまたはリテラル式。

返品

述部が trueである T 内の行。

events
    | project original_time, data_source_name, name
    //--- Search for the last 5 mins of data    
    | where original_time > now(-5m)
    // Look for events with unsuccessful audit
    | where name !contains "success" 
    | take 2

結果

元の時刻 データ・ソース名 名前
2023-04-13T13:59:29.732Z microsoftWindowsSource2 監査の失敗: アカウントがログオンに失敗しました
22023-04-13T13:59:30.900Z microsoftWindowsSource2 監査の失敗: アカウントがログオンに失敗しました