Operador search
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Busca un patrón de texto en varias tablas y columnas.
Nota:
Si conoce las tablas y columnas específicas que desea buscar, es más eficaz usar la unión y los operadores donde . El search
operador puede ser lento al buscar en un gran número de tablas y columnas.
Sintaxis
[T |
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
T | string |
Origen de datos tabulares que se va a buscar, como un nombre de tabla, un operador de unión o los resultados de una consulta tabular. No se puede mostrar junto con TableSources. | |
CaseSensitivity | string |
Marca que controla el comportamiento de todos los string operadores escalares, como has , con respecto a la distinción entre mayúsculas y minúsculas. Los valores válidos son default , case_insensitive , case_sensitive . Las opciones default y case_insensitive son sinónimos, ya que el comportamiento predeterminado no distingue mayúsculas de minúsculas. |
|
TableSources | string |
Lista separada por comas de nombres de tabla "comodín" para participar en la búsqueda. La lista tiene la misma sintaxis que la lista del operador union. No se puede mostrar junto con TabularSource. | |
SearchPredicate | string |
✔️ | Expresión booleana que se va a evaluar para cada registro de la entrada. Si devuelve true , se genera el registro. Consulte Sintaxis de predicado de búsqueda. |
Sintaxis de predicado de búsqueda
SearchPredicate permite buscar términos específicos en todas las columnas de una tabla. El operador que se aplicará a un término de búsqueda depende de la presencia y colocación de un asterisco comodín (*
) en el término , como se muestra en la tabla siguiente.
Literal | Operador |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
También puede restringir la búsqueda a una columna específica, buscar una coincidencia exacta en lugar de una coincidencia de términos o buscar por expresión regular. La sintaxis de cada uno de estos casos se muestra en la tabla siguiente.
Sintaxis | Explicación |
---|---|
ColumnName: StringLiteral |
Esta sintaxis se puede usar para restringir la búsqueda a una columna específica. El comportamiento predeterminado es buscar en todas las columnas. |
ColumnName== StringLiteral |
Esta sintaxis se puede usar para buscar coincidencias exactas de una columna con un valor de cadena. El comportamiento predeterminado es buscar una coincidencia de términos. |
StringLiteral de columna matches regex |
Esta sintaxis indica la coincidencia de expresiones regulares, en la que StringLiteral es el patrón regex. |
Use expresiones booleanas para combinar condiciones y crear búsquedas más complejas. Por ejemplo, "error" and x==123
daría lugar a una búsqueda de registros que tengan el término error
en cualquier columna y el valor 123
de la x
columna.
Nota:
Si se omiten TabularSource y TableSources, la búsqueda se lleva a cabo en todas las tablas y vistas sin restricciones de la base de datos en el ámbito.
Ejemplos de sintaxis de predicado de búsqueda
# | Sintaxis | Significado (equivalente where ) |
Comentarios |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | donde * tiene "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 |
Todas las comparaciones de cadenas distinguen mayúsculas de minúsculas | |
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) |
Comentarios
A diferencia del operador find, el search
operador no admite lo siguiente:
withsource=
: la salida siempre incluirá una columna denominada$table
de tipostring
cuyo valor es el nombre de tabla del que se recuperó cada registro (o algún nombre generado por el sistema si el origen no es una tabla, sino una expresión compuesta).project=
,project-smart
: el esquema de salida es equivalente alproject-smart
esquema de salida.
Ejemplos
Búsqueda de términos globales
Busque un término en todas las tablas y vistas sin restricciones de la base de datos en el ámbito.
search "Green"
La salida contiene registros de las Customers
tablas , Products
y SalesTable
. Los Customers
registros muestran todos los clientes con el apellido "Green" y los Products
registros y SalesTable
muestran productos con alguna mención de "Green".
Búsqueda de términos globales condicionales
Busque registros que coincidan con ambos términos en todas las tablas y vistas sin restricciones de la base de datos en el ámbito.
search "Green" and ("Deluxe" or "Proseware")
Búsqueda de una tabla específica
Busque solo en la Customers
tabla.
search in (Products) "Green"
Búsqueda con distinción entre mayúsculas y minúsculas
Busque registros que coincidan con términos que distinguen mayúsculas de minúsculas en todas las tablas y vistas sin restricciones de la base de datos en el ámbito.
search kind=case_sensitive "blue"
Buscar columnas específicas
Busque un término en las columnas "FirstName" y "LastName" en todas las tablas y vistas sin restricciones de la base de datos en el ámbito.
search FirstName:"Aaron" or LastName:"Hughes"
Limitar la búsqueda por marca de tiempo
Busque un término en todas las tablas y vistas sin restricciones de la base de datos en el ámbito si el término aparece en un registro con una fecha mayor que la fecha especificada.
search "Hughes" and DateKey > datetime('2009-01-01')
Sugerencias para mejorar el rendimiento
# | Sugerencia | Preferir | Over |
---|---|---|---|
1 | Preferir usar un único search operador en varios operadores consecutivos search |
search "billg" and ("steveb" or "satyan") |
buscar "billg" | buscar "steveb" o "satyan" |
2 | Preferir filtrar dentro del search operador |
search "billg" and "steveb" |
search * | donde * tiene "billg" y * tiene "steveb" |