operator wyszukiwania
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Wyszukuje wzorzec tekstu w wielu tabelach i kolumnach.
Uwaga
Jeśli znasz konkretne tabele i kolumny, które chcesz przeszukiwać, bardziej wydajne jest użycie unii i lokalizacji operatorów. Operator search
może być powolny podczas wyszukiwania dużej liczby tabel i kolumn.
Składnia
[T |
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
T | string |
Tabelaryczne źródło danych, które ma być przeszukiwane, takie jak nazwa tabeli, operator unii lub wyniki zapytania tabelarycznego. Nie można wyświetlić razem z usługą TableSources. | |
Wielkość liter | string |
Flaga, która kontroluje zachowanie wszystkich string operatorów skalarnych, takich jak has , w odniesieniu do poufności wielkości liter. Prawidłowe wartości to default , , case_sensitive case_insensitive . Opcje default i case_insensitive są synonimami, ponieważ zachowanie domyślne jest bez uwzględniania wielkości liter. |
|
TableSources | string |
Rozdzielona przecinkami lista "wieloznacznych" nazw tabel do udziału w wyszukiwaniu. Lista ma taką samą składnię jak lista operatora unii. Nie można wyświetlić razem z tabelarycznym źródłem. | |
SearchPredicate | string |
✔️ | Wyrażenie logiczne, które ma być oceniane dla każdego rekordu w danych wejściowych. Jeśli zwraca true wartość , rekord jest zwracany. Zobacz Składnia predykatu wyszukiwania. |
Składnia predykatu wyszukiwania
Funkcja SearchPredicate umożliwia wyszukiwanie określonych terminów we wszystkich kolumnach tabeli. Operator, który zostanie zastosowany do terminu wyszukiwania, zależy od obecności i umieszczania gwiazdki wieloznacznych (*
) w terminie, jak pokazano w poniższej tabeli.
Literal | Operator |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Możesz również ograniczyć wyszukiwanie do określonej kolumny, wyszukać dokładne dopasowanie zamiast dopasowania terminu lub wyszukać według wyrażenia regularnego. Składnia dla każdego z tych przypadków jest wyświetlana w poniższej tabeli.
Składnia | Wyjaśnienie |
---|---|
Nazwakolumny: StringLiteral |
Ta składnia może służyć do ograniczenia wyszukiwania do określonej kolumny. Domyślne zachowanie polega na wyszukiwaniu wszystkich kolumn. |
Nazwakolumny== StringLiteral |
Ta składnia może służyć do wyszukiwania dokładnych dopasowań kolumny względem wartości ciągu. Domyślne zachowanie polega na wyszukaniu dopasowania terminu. |
Ciąg kolumnowyLiteral matches regex |
Ta składnia wskazuje dopasowanie wyrażenia regularnego, w którym StringLiteral jest wzorcem wyrażeń regularnych. |
Użyj wyrażeń logicznych, aby połączyć warunki i tworzyć bardziej złożone wyszukiwania. Na przykład "error" and x==123
spowoduje to wyszukanie rekordów, które mają termin error
w dowolnych kolumnach i wartość 123
w kolumnie x
.
Uwaga
Jeśli pominięto obie tabele TabularSource i TableSources , wyszukiwanie jest przenoszone na wszystkie nieograniczone tabele i widoki bazy danych w zakresie.
Przykłady składni predykatu wyszukiwania
# | Składnia | Znaczenie (równoważne where ) |
Komentarze |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | gdzie * ma wartość "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 |
W przypadku wszystkich porównań ciągów uwzględniana jest wielkość liter | |
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) |
Uwagi
W przeciwieństwie do operatora find, operatorsearch
nie obsługuje następujących elementów:
withsource=
: Dane wyjściowe będą zawsze zawierać kolumnę o nazwie$table
typustring
, której wartością jest nazwa tabeli, z której pobrano każdy rekord (lub nazwa wygenerowana przez system, jeśli źródło nie jest tabelą, ale wyrażeniem złożonym).project=
,project-smart
: schemat wyjściowy jest odpowiednikiemproject-smart
schematu wyjściowego.
Przykłady
Wyszukiwanie terminów globalnych
Wyszukaj termin dla wszystkich nieograniczonych tabel i widoków bazy danych w zakresie.
search "Green"
Dane wyjściowe zawierają rekordy z Customers
tabel , Products
i SalesTable
. Rekordy Customers
pokazują wszystkich klientów z nazwiskiem "Green", a Products
rekordy i SalesTable
pokazują produkty z wzmianką o "Green".
Warunkowe wyszukiwanie terminów globalnych
Wyszukaj rekordy pasujące do obu terminów dla wszystkich nieograniczonych tabel i widoków bazy danych w zakresie.
search "Green" and ("Deluxe" or "Proseware")
Wyszukiwanie określonej tabeli
Wyszukaj tylko w Customers
tabeli.
search in (Products) "Green"
Wyszukiwanie uwzględniające wielkość liter
Wyszukaj rekordy pasujące do obu terminów z uwzględnieniem wielkości liter we wszystkich nieograniczonych tabelach i widokach bazy danych w zakresie.
search kind=case_sensitive "blue"
Wyszukiwanie określonych kolumn
Wyszukaj termin w kolumnach "FirstName" i "LastName" dla wszystkich nieograniczonych tabel i widoków bazy danych w zakresie.
search FirstName:"Aaron" or LastName:"Hughes"
Ogranicz wyszukiwanie według znacznika czasu
Wyszukaj termin dla wszystkich nieograniczonych tabel i widoków bazy danych w zakresie, jeśli termin pojawia się w rekordzie z datą większą niż dana data.
search "Hughes" and DateKey > datetime('2009-01-01')
Wskazówki dotyczące wydajności
# | Napiwek | Woleć | Ponad |
---|---|---|---|
1 | Preferuj używanie jednego search operatora w kilku kolejnych search operatorach |
search "billg" and ("steveb" or "satyan") |
wyszukiwanie "billg" | wyszukiwanie "steveb" lub "satyan" |
2 | Preferuj search filtrowanie wewnątrz operatora |
search "billg" and "steveb" |
wyszukiwanie * | gdzie * ma "billg" i * ma "steveb" |