! has 演算子
大/小文字を区別しないストリングが一致しないデータのレコード・セットをフィルタリングします。 has は、索引付きの用語を検索します。ここで、 用語 は 3 文字以上です。 用語が 3 文字未満の場合、照会は列内の値をスキャンします。これは、用語索引内の用語を検索するよりも遅くなります。
以下の表に、 has 演算子の比較を示します。
| オペレーター | 説明 | 大文字と小文字を区別する | 例 ( trueが生成されます) |
|---|---|---|---|
has |
右側 (RHS) は、左側 (LHS) の全体を意味する用語です。 | いいえ | "Login Failed" has "failed" |
!has |
RHS は LHS では完全な用語ではありません | いいえ | "Login Failed" !has "fail" |
has_cs |
RHS は、LHS では用語全体です。 | はい | "Login Failed" has_cs "Failed" |
!has_cs |
RHS は LHS では完全な用語ではありません | はい | "Login Failed" !has_cs "fail" |
上記の表では、以下の省略形が使用されています。
- RHS = 式の右側です。
- LHS = 式の左側です。
その他の演算子について、および照会に最も適した演算子を判別する方法について詳しくは、 データ・タイプ・ストリング演算子を参照してください。
大/小文字を区別しない演算子は、現在 ASCII テキストでのみサポートされています。 非 ASCII 比較の場合は、 tolower () 関数を使用します。
パフォーマンスのヒント
パフォーマンスは、検索のタイプとデータの構造によって異なります。
結果をより速くするには、演算子の大/小文字を区別するバージョンを使用します。例えば、 hasではなく、 has_csを使用します。
フィールドの先頭または末尾に非英数字文字でバインドされたシンボルまたは英数字ワードが存在するかどうかをテストする場合は、 has または inを使用します。
構文
T | where 列 !has (式)
引数
- T -レコードがフィルタリングされる表形式の入力。
- Column -フィルタリングする列。
- 式 -スカラーまたはリテラル式。
返品
述部が trueである T 内の行。
例
events
| project original_time, data_source_name, name
//--- Search for the last 5 mins of data and events don't contain login
| where original_time > now(-5m) and name !has "login"
| take 2
結果
| 元の時刻 | データ・ソース名 | 名前 |
|---|---|---|
| 2023-04-09T21:31:24.620Z | microsoftWindowsSource2 | バックアップの開始 |
| 2023-04-09T21:31:24.620Z | microsoftWindowsSource6 | バックアップの終了 |