次の方法で共有


search 演算子

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

複数のテーブルと列でテキスト パターンを検索します。

検索する特定のテーブルと列がわかっている場合は、 union および where 演算子を使用する方がパフォーマンスが高くなります。 search演算子は、多数のテーブルと列を検索するときに低速になる可能性があります。

構文

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

構文規則について詳しく知る。

パラメーター

件名 タイプ 必須 説明
T string テーブル名、 union 演算子、表形式クエリの結果など、検索対象の表形式データ ソース。 TableSources と共に指定することはできません。
CaseSensitivity string 大文字と小文字の区別に関して、stringなど、すべてのhasスカラー演算子の動作を制御するフラグ。 有効な値は、 defaultcase_insensitivecase_sensitiveです。 既定の動作では大文字と小文字が区別されないので、 default オプションと case_insensitive オプションは同義です。
TableSources string 検索に参加する "ワイルドカード" テーブル名のコンマ区切りの一覧。 リストの構文は、union 演算子のリストと同じです。 表形式データ ソース (T) と共に指定することはできません。
SearchPredicate string ✔️ 入力内のすべてのレコードに対して評価されるブール式。 trueを返すと、レコードが出力されます。 述語構文の検索を参照してください。

表形式データ ソース (T) と TableSource の 両方を省略した場合、検索はスコープ内のデータベースのすべての無制限のテーブルとビューに対して実行されます。

検索述語の構文

SearchPredicateを使用すると、テーブルのすべての列で特定の用語を検索できます。 検索語句に適用される演算子は、次の表に示すように、用語内のワイルドカード アスタリスク (*) の存在と配置によって異なります。

リテラル 演算子
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

また、検索を特定の列に制限したり、用語の一致ではなく完全一致を検索したり、正規表現で検索したりすることもできます。 これらの各ケースの構文を次の表に示します。

構文 説明
ColumnName:StringLiteral この構文を使用して、検索を特定の列に制限できます。 既定の動作では、すべての列を検索します。
ColumnName==StringLiteral この構文を使用すると、文字列値に対する列の完全一致を検索できます。 既定の動作では、用語の一致を検索します。
matches regexStringLiteral この構文は正規表現の一致を示します。 StringLiteral は正規表現パターンです。

ブール式を使用して条件を結合し、より複雑な検索を作成します。 たとえば、"error" and x==123は、任意の列に用語errorを持つレコードと、123列にx値を検索します。

検索述語構文の例

# 構文 意味 (同等の where) コメント
1 search "err" where * has "err"
2 search in (T1,T2,A*) "err" union T1,T2,A* |ここで* には "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=: 出力には常に、$table型のstringと呼ばれる列が含まれ、その値は各レコードの取得元のテーブル名 (またはソースがテーブルではなく複合式の場合はシステムによって生成された名前) です。
  2. project=project-smart: search 演算子は、出力列をカスタマイズするためのこれらのオプションをサポートしていません。 代わりに、出力に関連する列のセットが自動的に選択されます。これは、project-smart演算子の find オプションによって取得された列のセットと同じです。

この記事の例では、Samples データベースの StormEvents テーブルなど、ヘルプ クラスターので一般公開されているテーブルを使用します。

この記事の例では、Weather Analytics StormEvents テーブルなど、一般公開されているテーブルを使用します。

次の例は、グローバル用語検索を実行する方法を示しています。 ContosoSales データベースのすべてのテーブルで Green という用語を検索します。

出力では、Customers、およびProductsテーブルで、姓または色としてSalesTableという用語を持つレコードが検索されます。

 search "Green"

アウトプット

$table CityName ContinentName カスタマーキー 教育 ファーストネーム ジェンダー 苗字
顧客 バラード 北アメリカ 16549 部分大学 石工 エム 緑色
顧客 ベリンガム 北アメリカ 2070 高等学校 アダム エム 緑色
顧客 ベリンガム 北アメリカ 10658 学士号 サラ F 緑色
顧客 ビバリーヒルズ 北アメリカ 806 大学院学位 リチャード エム 緑色
顧客 ビバリーヒルズ 北アメリカ 7674 大学院学位 ジェームズ エム 緑色
顧客 バーバンク 北アメリカ 5241 大学院学位 マデリーン F 緑色

次の例は、条件付きグローバル用語検索を実行する方法を示しています。 ContosoSales データベースで、"緑" という用語と、Deluxe または Proseware という用語のいずれかを含むレコードを検索します。

search "Green" and ("Deluxe" or "Proseware")

アウトプット

$table ProductName 生産者 ColorName クラス名 製品カテゴリ名
プロダクツ Contoso 8GB Clock & Radio MP3 Player X850 Green Contoso, Ltd 緑色 デラックス オーディオ
プロダクツ ProsewareスキャンジェットデジタルフラットベッドスキャナーM300グリーン Proseware, Inc. 緑色 レギュラー コンピューター
プロダクツ Proseware All-In-One フォト プリンター M200 グリーン Proseware, Inc. 緑色 レギュラー コンピューター
プロダクツ Proseware Ink Jet Wireless All-In-One Printer M400 Green Proseware, Inc. 緑色 レギュラー コンピューター
プロダクツ Proseware Ink Jet インスタント PDF Sheet-Fed スキャナー M300 グリーン Proseware, Inc. 緑色 レギュラー コンピューター
プロダクツ Proseware Desk Jet オールインワン プリンター, スキャナー, コピー機 M350 グリーン Proseware, Inc. 緑色 レギュラー コンピューター
プロダクツ Proseware 二重スキャナー M200 グリーン Proseware, Inc. 緑色 レギュラー コンピューター

次の例では、特定のテーブル内の用語を検索する方法を示します。 テーブルでのみCustomersという用語を検索します。

search in (Products) "Green"

アウトプット

$table ProductName 生産者 ColorName
プロダクツ Contoso 4G MP3 Player E400 Green Contoso, Ltd 緑色
プロダクツ Contoso 8 GB Super-Slim MP3/Video Player M800 Green Contoso, Ltd 緑色
プロダクツ Contoso 16GB Mp5 プレーヤー M1600 グリーン Contoso, Ltd 緑色
プロダクツ Contoso 8GB Clock & Radio MP3 Player X850 Green Contoso, Ltd 緑色
プロダクツ NTワイヤレスBluetoothステレオヘッドフォンM402グリーン ノースウィンドトレーダー 緑色
プロダクツ NTワイヤレス送信機とBluetoothヘッドフォンM150グリーン ノースウィンドトレーダー 緑色

次の例では、大文字と小文字を区別する用語を検索する方法を示します。 ContosoSales データベースで、大文字と小文字を区別する用語と一致するレコードを検索します。

search kind=case_sensitive "blue"

アウトプット

$table ProductName 生産者 ColorName クラス名
プロダクツ Contoso 16GB New Generation MP5 Player M1650 blue Contoso, Ltd 青い レギュラー
プロダクツ Contoso Bright Light Battery E20 blue Contoso, Ltd 青い エコノミー
プロダクツ ライトウェア120ミリメートルブルーLEDケースファンE901青 Litware, Inc. 青い エコノミー
NewSales ライトウェア120ミリメートルブルーLEDケースファンE901青 Litware, Inc. 青い エコノミー
NewSales ライトウェア120ミリメートルブルーLEDケースファンE901青 Litware, Inc. 青い エコノミー
NewSales ライトウェア120ミリメートルブルーLEDケースファンE901青 Litware, Inc. 青い エコノミー
NewSales ライトウェア120ミリメートルブルーLEDケースファンE901青 Litware, Inc. 青い エコノミー

次の例では、特定の列で用語を検索する方法を示します。 ContosoSales データベースの "FirstName" 列と "LastName" 列で、AaronHughes という用語を検索します。

search FirstName:"Aaron" or LastName:"Hughes"

アウトプット

$table カスタマーキー 教育 ファーストネーム ジェンダー 苗字
顧客 18285 高等学校 ライリー F ヒューズ
顧客 802 大学院学位 アーロン エム シャルマ
顧客 986 学士号 メラニー F ヒューズ
顧客 12669 高等学校 ジェシカ F ヒューズ
顧客 13436 大学院学位 Mariah F ヒューズ
顧客 10152 大学院学位 アーロン エム キャンベル

次の例では、タイムスタンプを持つ用語を検索する方法を示します。 "datetime" で指定した日付より大きい日付のレコードに用語が表示される場合は、ContosoSales データベースで「ヒューズ」という用語を検索します。

search "Hughes" and DateKey > datetime('2009-01-01')

アウトプット

$table DateKey SalesAmount_real
SalesTable 2021-12-13T00:00:00Z 446.4715
SalesTable 2021-12-13T00:00:00Z 120.555
SalesTable 2021-12-13T00:00:00Z 48.4405
SalesTable 2021-12-13T00:00:00Z 39.6435
SalesTable 2021-12-13T00:00:00Z 56.9905

パフォーマンスに関するヒント

# ヒント 優先 以上
1 複数の連続する search 演算子よりも単一の search 演算子の使用を優先します search "billg" and ("steveb" or "satyan") "billg" を検索する |検索 "steveb" または "satyan"
2 search 演算子内のフィルター処理を優先します search "billg" and "steveb" search * |ここで* は "billg" を持ち、* は "steveb" を持っています