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


Оператор search

Область применения: ✅Microsoft Fabric

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

Примечание.

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

Синтаксис

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

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

Параметры

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

Примечание.

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

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

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

Литерал Оператор
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

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

Синтаксис Описание
ColumnName:StringLiteral Этот синтаксис можно использовать для ограничения поиска определенного столбца. По умолчанию выполняется поиск всех столбцов.
ColumnName==StringLiteral Этот синтаксис можно использовать для поиска точных совпадений столбца со строковым значением. Поведение по умолчанию — поиск совпадения терминов.
Columnmatches 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* | 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)

Замечания

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

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

Примеры

В этом разделе показано, как использовать синтаксис для начала работы.

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

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

Найдите термин "Зеленый" во всех таблицах базы данных ContosoSales.

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

 search "Green"

выходных

$table CityName ContinentName CustomerKey Образование FirstName Род LastName
Клиентов Баллард Северная Америка 16549 Частичный колледж Каменщик M Зеленый
Клиентов Беллингем Северная Америка 2070 Средняя школа Адам M Зеленый
Клиентов Беллингем Северная Америка 10658 Бакалавров Сара F Зеленый
Клиентов Беверли Хиллз Северная Америка 806 Диплом Ричард M Зеленый
Клиентов Беверли Хиллз Северная Америка 7674 Диплом Джеймс M Зеленый
Клиентов Бербанк Северная Америка 5241 Диплом Мэделин F Зеленый

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

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

выходных

$table ProductName Изготовитель ColorName ClassName ProductCategoryName
Продукция Contoso 8GB Clock & Radio MP3 Проигрыватель X850 зеленый Contoso, Ltd Зеленый Делюкс Аудио
Продукция Proseware Scan Jet Digital Flat Bed Сканер M300 зеленый Proseware, Inc. Зеленый Регулярный Компьютеры
Продукция Proseware All-In-One фото принтер M200 зеленый Proseware, Inc. Зеленый Регулярный Компьютеры
Продукция Proseware Ink Jet Wireless All-In-One принтер M400 зеленый Proseware, Inc. Зеленый Регулярный Компьютеры
Продукция Proseware Ink Jet Instant PDF Sheet-Fed сканер M300 зеленый Proseware, Inc. Зеленый Регулярный Компьютеры
Продукция Proseware Desk Jet All-in-One Printer, сканер, копировщик M350 зеленый Proseware, Inc. Зеленый Регулярный Компьютеры
Продукция Дуплексный сканер Proseware M200 зеленый Proseware, Inc. Зеленый Регулярный Компьютеры

Поиск определенной таблицы

Найдите термин Зеленый только в таблице Customers.

search in (Products) "Green"

выходных

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

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

search kind=case_sensitive "blue"

выходных

$table ProductName Изготовитель ColorName ClassName
Продукция Contoso 16GB New Generation MP5 Player M1650 blue Contoso, Ltd синий Регулярный
Продукция Синяя батарея Contoso Bright Light E20 Contoso, Ltd синий Экономика
Продукция Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. синий Экономика
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. синий Экономика
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. синий Экономика
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. синий Экономика
NewSales Litware 120mm Blue LED Case Fan E901 blue Litware, Inc. синий Экономика

Поиск определенных столбцов

Найдите термины Aaron и Hughesв столбцах FirstName и LastName соответственно в базе данных ContosoSal es.

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

выходных

$table CustomerKey Образование FirstName Род LastName
Клиентов 18285 Средняя школа Райли F Хьюз
Клиентов 802 Диплом Аарон M Шарма
Клиентов 986 Бакалавров Мелани F Хьюз
Клиентов 12669 Средняя школа Джессика F Хьюз
Клиентов 13436 Диплом Мария F Хьюз
Клиентов 10152 Диплом Аарон M Кэмпбелл

Ограничение поиска по метке времени

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

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" | поиск "стивб" или "сатян"
2 Предпочитать фильтровать внутри search оператора search "billg" and "steveb" search * | where * имеет "billg" и * имеет "стив"