Оператор search
Выполняет поиск по шаблону текста в нескольких таблицах и столбцах.
Примечание
Если вы знаете конкретные таблицы и столбцы, которые требуется выполнить поиск, более производительно использовать операторы union и where . Оператор search
может выполняться медленно при поиске по большому количеству таблиц и столбцов.
Синтаксис
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
T | string |
Табличный источник данных для поиска, например имя таблицы, оператор объединения или результаты табличного запроса. Не может отображаться вместе с TableSources. | |
CaseSensitivity | string |
Флаг, управляющий поведением всех string скалярных операторов, таких как has , в отношении чувствительности к регистру. Допустимые значения: default , case_insensitive , case_sensitive . Параметры default и case_insensitive являются синонимами, так как поведение по умолчанию не учитывает регистр. |
|
TableSources | string |
Разделенный запятыми список имен таблиц с подстановочными знаками для участия в поиске. Этот список имеет тот же синтаксис, что и список оператора union. Не может отображаться вместе с TabularSource. | |
SearchPredicate | string |
✔️ | Логическое выражение, вычисляемое для каждой записи во входных данных. Если возвращается true значение , запись выводится. См. раздел Синтаксис предиката поиска. |
Синтаксис предиката поиска
SearchPredicate позволяет искать определенные термины во всех столбцах таблицы. Оператор, который будет применяться к условию поиска, зависит от наличия и размещения подстановочной звездочки (*
) в термине, как показано в следующей таблице.
Литерал | Оператор |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Вы также можете ограничить поиск определенным столбцом, найти точное совпадение вместо совпадения с термином или выполнить поиск по регулярному выражению. Синтаксис для каждого из этих случаев показан в следующей таблице.
Синтаксис | Описание |
---|---|
Имя столбца: StringLiteral |
Этот синтаксис можно использовать для ограничения поиска определенным столбцом. По умолчанию выполняется поиск по всем столбцам. |
Имя столбца== StringLiteral |
Этот синтаксис можно использовать для поиска точных совпадений столбца со строковым значением. Поведение по умолчанию — поиск совпадения терминов. |
Столбцаmatches regex StringLiteral |
Этот синтаксис указывает на сопоставление регулярных выражений, в котором StringLiteral является шаблоном регулярного выражения. |
Используйте логические выражения для объединения условий и создания более сложных поисковых запросов. Например, "error" and x==123
приведет к поиску записей с термином error
в любых столбцах и значением 123
в столбце x
.
Примечание
Если значения TabularSource и TableSources опущены, поиск выполняется по всем неограниченным таблицам и представлениям базы данных в область.
Примеры синтаксиса предиката поиска
# | Синтаксис | Значение (эквивалент )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
: выходная схема эквивалентна выходной схемеproject-smart
.
Примеры
Глобальный поиск терминов
Поиск термина для всех неограниченных таблиц и представлений базы данных в область.
search "Green"
Выходные данные содержат записи из Customers
таблиц , Products
и SalesTable
. В Customers
записях отображаются все клиенты с фамилией "Зеленый", а Products
в записях и SalesTable
— продукты с некоторыми упоминание "Зеленый".
Условный глобальный поиск терминов
Поиск записей, соответствующих обоим терминам, по всем неограниченным таблицам и представлениям базы данных в область.
search "Green" and ("Deluxe" or "Proseware")
Поиск в определенной таблице
Поиск только в Customers
таблице.
search in (Products) "Green"
Поиск с учетом регистра
Поиск записей, соответствующих обоим терминам с учетом регистра, по всем неограниченным таблицам и представлениям базы данных в область.
search kind=case_sensitive "blue"
Поиск по определенным столбцам
Выполните поиск термина в столбцах FirstName и LastName во всех таблицах и представлениях базы данных с неограниченным доступом в область.
search FirstName:"Aaron" or LastName:"Hughes"
Ограничение поиска по метке времени
Поиск термина для всех неограниченных таблиц и представлений базы данных в область, если термин отображается в записи с датой больше заданной даты.
search "Hughes" and DateKey > datetime('2009-01-01')
Советы по производительности
# | Совет | Prefer | Over |
---|---|---|---|
1 | Предпочитать использовать один search оператор вместо нескольких последовательных search операторов |
search "billg" and ("steveb" or "satyan") |
search "billg" | поиск "steveb" или "satyan" |
2 | Предпочитать фильтрацию внутри search оператора |
search "billg" and "steveb" |
search * | где * имеет "billg", а * имеет "steveb" |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по