Поделиться через


оператор поиска

Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Выполняет поиск текстового шаблона в нескольких таблицах и столбцах.

Note

Если вы знаете определенные таблицы и столбцы, которые вы хотите искать, это более производительно, чтобы использовать объединение и где операторы. Оператор search может быть медленным при поиске по большому количеству таблиц и столбцов.

Syntax

[T|] searchkind= [CaseSensitivity] [in(TableSources)] SearchPredicate

Дополнительные сведения о соглашениях синтаксиса.

Parameters

Name Type Required Description
T string Источник табличных данных для поиска, например имя таблицы, оператор объединения или результаты табличного запроса. Невозможно указать вместе с TableSources.
CaseSensitivity string Флаг, который управляет поведением всех string скалярных операторов, например hasс учетом конфиденциальности регистра. Допустимые значения: default, case_insensitivecase_sensitive. Параметры default и case_insensitive синонимы, так как поведение по умолчанию не учитывает регистр.
TableSources string Разделенный запятыми список имен таблиц с подстановочными знаками для участия в поиске. Список имеет тот же синтаксис, что и список оператора объединения. Невозможно указать вместе с табличным источником данных (T).
SearchPredicate string ✔️ Логическое выражение, вычисляющееся для каждой записи во входных данных. Если он возвращается true, запись выводится. См . синтаксис предиката поиска.

Note

Если табличный источник данных (T) и TableSources опущены , поиск выполняется по всем неограниченным таблицам и представлениям базы данных в области.

Синтаксис предиката поиска

SearchPredicate позволяет выполнять поиск определенных терминов во всех столбцах таблицы. Оператор, применяемый к термину поиска, зависит от присутствия и размещения подстановочного знака звездочки (*) в термине, как показано в следующей таблице.

Literal Operator
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

Вы также можете ограничить поиск определенным столбцом, искать точное совпадение вместо совпадения терминов или выполнять поиск по регулярному выражению. Синтаксис для каждого из этих случаев показан в следующей таблице.

Syntax Explanation
ColumnName:StringLiteral Этот синтаксис можно использовать для ограничения поиска определенного столбца. По умолчанию выполняется поиск всех столбцов.
ColumnName==StringLiteral Этот синтаксис можно использовать для поиска точных совпадений столбца со строковым значением. Поведение по умолчанию — поиск совпадения терминов.
Столбцаmatches regexStringLiteral Этот синтаксис указывает на сопоставление регулярных выражений, в котором StringLiteral является шаблоном регулярных выражений.

Используйте логические выражения для объединения условий и создания более сложных поисковых запросов. Например, "error" and x==123 это приведет к поиску записей, имеющих термин error в любых столбцах и значении 123 в столбце x .

Примеры синтаксиса предиката поиска

# Syntax Значение (эквивалент where) Comments
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)

Remarks

В отличие от оператора find, search оператор не поддерживает следующий синтаксис:

  1. withsource=. Выходные данные всегда содержат столбец с именем $table типа string имя таблицы, из которого извлекалась каждая запись (или имя, созданное системой, если источник не таблица, а составное выражение).
  2. project=. project-smartОператор search не поддерживает эти параметры для настройки выходных столбцов. Вместо этого он автоматически выбирает соответствующий набор столбцов для выходных данных, который эквивалентен набору столбцов, полученных project-smart параметром в операторе find .

Examples

Примеры, приведенные в этой статье, используют общедоступные таблицы в кластере справки, например StormEvents таблицу в базе данных Samples .

В примерах этой статьи используются общедоступные таблицы, такие как Weather таблица в коллекции примеров Weather Analytics. Возможно, потребуется изменить имя таблицы в примере запроса, чтобы она соответствовала таблице в рабочей области.

В следующем примере показано, как выполнить глобальный поиск терминов. Найдите термин Green во всех таблицах базы данных ContosoSales .

Выходные данные обнаруживают записи с термином "Зеленый" в качестве фамилии или цвета в CustomersProductsтаблицах и SalesTable таблицах.

 search "Green"

Output

$table CityName ContinentName CustomerKey Education FirstName Gender LastName
Customers Ballard North America 16549 Частичный колледж Mason M Green
Customers Bellingham North America 2070 Средняя школа Adam M Green
Customers Bellingham North America 10658 Bachelors Sara F Green
Customers Беверли Хиллз North America 806 Диплом Richard M Green
Customers Беверли Хиллз North America 7674 Диплом James M Green
Customers Burbank North America 5241 Диплом Madeline F Green

В следующем примере показано, как выполнить условный глобальный поиск терминов. Найдите записи, содержащие термин Green и один из терминов Делюкс или Proseware в базе данных ContosoSales .

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

Output

$table ProductName Manufacturer ColorName ClassName ProductCategoryName
Products Contoso 8GB Clock & Radio MP3 Проигрыватель X850 зеленый Contoso, Ltd Green Deluxe Audio
Products Proseware Scan Jet Digital Flat Bed Сканер M300 зеленый Proseware, Inc. Green Regular Computers
Products Proseware All-In-One фото принтер M200 зеленый Proseware, Inc. Green Regular Computers
Products Proseware Ink Jet Wireless All-In-One принтер M400 зеленый Proseware, Inc. Green Regular Computers
Products Proseware Ink Jet Instant PDF Sheet-Fed сканер M300 зеленый Proseware, Inc. Green Regular Computers
Products Proseware Desk Jet All-in-One Printer, сканер, копировщик M350 зеленый Proseware, Inc. Green Regular Computers
Products Дуплексный сканер Proseware M200 зеленый Proseware, Inc. Green Regular Computers

В следующем примере показано, как искать термин в определенной таблице. Найдите термин "ЗеленыйCustomers" только в таблице.

search in (Products) "Green"

Output

$table ProductName Manufacturer ColorName
Products Contoso 4G MP3 Player E400 Green Contoso, Ltd Green
Products Contoso 8GB Super-Slim MP3/Видеопроигрыватель M800 зеленый Contoso, Ltd Green
Products Contoso 16GB Mp5 Player M1600 Green Contoso, Ltd Green
Products Contoso 8GB Clock & Radio MP3 Проигрыватель X850 зеленый Contoso, Ltd Green
Products Беспроводной bluetooth стереонаушники M402 зеленый Northwind Traders Green
Products Беспроводной датчик NT и Bluetooth-наушники M150 зеленый Northwind Traders Green

В следующем примере показано, как искать термин с учетом регистра. Найдите записи, соответствующие термину с учетом регистра в базе данных ContosoSales .

search kind=case_sensitive "blue"

Output

$table ProductName Manufacturer ColorName ClassName
Products Contoso 16GB New Generation MP5 Player M1650 blue Contoso, Ltd blue Regular
Products Синяя батарея Contoso Bright Light E20 Contoso, Ltd blue Economy
Products Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. blue Economy
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. blue Economy
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. blue Economy
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. blue Economy
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. blue Economy

В следующем примере показано, как искать термин в определенных столбцах. Найдите термины Aaron и Hughes в столбцах FirstName и LastName соответственно в базе данных ContosoSales .

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

Output

$table CustomerKey Education FirstName Gender LastName
Customers 18285 Средняя школа Riley F Hughes
Customers 802 Диплом Aaron M Sharma
Customers 986 Bachelors Melanie F Hughes
Customers 12669 Средняя школа Jessica F Hughes
Customers 13436 Диплом Mariah F Hughes
Customers 10152 Диплом Aaron M Campbell

В следующем примере показано, как искать термин с меткой времени. Найдите термин Hughes в базе данных ContosoSales , если термин отображается в записи с датой больше указанной даты в datetime.

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

Output

$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

Советы по производительности

# Tip Prefer Over
1 Предпочитать использовать один search оператор через несколько последовательных search операторов. search "billg" and ("steveb" or "satyan") поиск "billg" | поиск "стивб" или "сатян"
2 Предпочитать фильтровать внутри search оператора search "billg" and "steveb" search * | where * имеет "billg" и * имеет "стив"