Udostępnij za pośrednictwem


operator has_any

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Filtruje zestaw rekordów dla danych przy użyciu dowolnego zestawu ciągów bez uwzględniania wielkości liter. has_any wyszukuje indeksowane terminy, w których indeksowany termin ma co najmniej trzy znaki. Jeśli termin ma mniej niż trzy znaki, zapytanie skanuje wartości w kolumnie, co jest wolniejsze niż wyszukiwanie terminu w indeksie terminów.

Aby uzyskać więcej informacji na temat innych operatorów i określić, który operator jest najbardziej odpowiedni dla zapytania, zobacz operatory ciągów typu danych.

Wskazówki dotyczące wydajności

Uwaga

Gdy jest używanych więcej niż 128 terminów wyszukiwania, optymalizacja wyszukiwania indeksu tekstowego jest wyłączona, co może prowadzić do zmniejszenia wydajności zapytań.

Składnia

Wyrażenie kolumny ( has_any T ... | where ,)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
T string ✔️ Dane wejściowe tabelaryczne do filtrowania.
Col string ✔️ Kolumna, według której ma być filtrowany.
wyrażenie skalarny lub tabelaryczny ✔️ Wyrażenie określające wartości, dla których mają być wyszukiwane. Każde wyrażenie może być wartością skalarną lub wyrażeniem tabelarycznym tworzącym zestaw wartości. Jeśli wyrażenie tabelaryczne zawiera wiele kolumn, zostanie użyta pierwsza kolumna. Wyszukiwanie będzie uwzględniać maksymalnie 10 000 unikatowych wartości.

Uwaga

Wbudowane wyrażenie tabelaryczne musi być ujęte w nawiasy podwójne. Zobacz przykład.

Zwraca

Wiersze w języku T , dla których predykat to true.

Przykłady

Lista skalarów

Poniższe zapytanie pokazuje, jak używać has_any z rozdzielaną przecinkami listą wartości skalarnych.

StormEvents 
| where State has_any ("CAROLINA", "DAKOTA", "NEW") 
| summarize count() by State

Wyjście

Stan liczba_
NEW YORK 1750
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
NEW JERSEY 1044
SOUTH CAROLINA 915
DAKOTA PÓŁNOCNA 905
NOWY MEKSYK 527
NEW HAMPSHIRE 394

Tablica dynamiczna

Poniższe zapytanie pokazuje, jak używać z has_any tablicą dynamiczną.

StormEvents 
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State

Wyjście

Stan liczba_
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
SOUTH CAROLINA 915
DAKOTA PÓŁNOCNA 905
POŁUDNIE ATLANTYCKIE 193
PÓŁNOC ATLANTYCKIA 188

To samo zapytanie można również napisać za pomocą instrukcji let.

let areas = dynamic(['south', 'north']);
StormEvents 
| where State has_any (areas)
| summarize count() by State

Wyjście

Stan liczba_
NORTH CAROLINA 1721
SOUTH DAKOTA 1567
SOUTH CAROLINA 915
DAKOTA PÓŁNOCNA 905
POŁUDNIE ATLANTYCKIE 193
PÓŁNOC ATLANTYCKIA 188

Wyrażenie tabelaryczne

Poniższe zapytanie pokazuje, jak używać z has_any wbudowanym wyrażeniem tabelarycznym. Zwróć uwagę, że wbudowane wyrażenie tabelaryczne musi być ujęte w nawiasy podwójne.

StormEvents 
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State

Wyjście

Stan liczba_
TEKSAS 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIA 1983
MINNESOTA 1881
... ...

To samo zapytanie można również napisać za pomocą instrukcji let. Zwróć uwagę, że podwójne nawiasy, jak podano w ostatnim przykładzie, nie są w tym przypadku konieczne.

let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents 
| where State has_any (large_states)
| summarize count() by State

Wyjście

Stan liczba_
TEKSAS 4701
ILLINOIS 2022
MISSOURI 2016
GEORGIA 1983
MINNESOTA 1881
... ...