適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
複数のテーブルと列でテキスト パターンを検索します。
注
検索する特定のテーブルと列がわかっている場合は、 union および where 演算子を使用する方がパフォーマンスが高くなります。
search
演算子は、多数のテーブルと列を検索するときに低速になる可能性があります。
構文
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
構文規則について詳しく知る。
パラメーター
件名 | タイプ | 必須 | 説明 |
---|---|---|---|
T | string |
テーブル名、 union 演算子、表形式クエリの結果など、検索対象の表形式データ ソース。 TableSources と共に指定することはできません。 | |
CaseSensitivity | string |
大文字と小文字の区別に関して、string など、すべてのhas スカラー演算子の動作を制御するフラグ。 有効な値は、 default 、 case_insensitive 、 case_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 regex StringLiteral |
この構文は正規表現の一致を示します。 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
演算子は次の構文をサポートしていません。
-
withsource=
: 出力には常に、$table
型のstring
と呼ばれる列が含まれ、その値は各レコードの取得元のテーブル名 (またはソースがテーブルではなく複合式の場合はシステムによって生成された名前) です。 -
project=
、project-smart
:search
演算子は、出力列をカスタマイズするためのこれらのオプションをサポートしていません。 代わりに、出力に関連する列のセットが自動的に選択されます。これは、project-smart
演算子のfind
オプションによって取得された列のセットと同じです。
例
この記事の例では、Samples データベースの
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" 列で、Aaron と Hughes という用語を検索します。
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" を持っています |