GitHubKontrybutorzy w programie GitHub: Edytuj w trybie z połączeniem

! ma operator

Filtruje zestaw rekordów dla danych, które nie mają zgodnego łańcucha bez rozróżniania wielkości liter. has wyszukuje indeksowane terminy, gdzie termin to trzy lub więcej znaków. Jeśli termin jest mniejszy niż trzy znaki, to zapytanie skanuje wartości w kolumnie, co jest wolniejsze niż wyszukiwanie terminu w indeksie terminu.

W poniższej tabeli przedstawiono porównanie operatorów has :

Operator Opis Rozróżnianie wielkości liter Przykład (uzysk true)
has Prawa ręka-ręka (RHS) to cały termin w lewej stronie (LHS) Nie "Login Failed" has "failed"
!has RHS to nie jest pełne określenie w LHS Nie "Login Failed" !has "fail"
has_cs RHS to cały termin w LHS Tak "Login Failed" has_cs "Failed"
!has_cs RHS to nie jest pełne określenie w LHS Tak "Login Failed" !has_cs "fail"

W powyższej tabeli stosowane są następujące skróty:

  • RHS = po prawej stronie wyrażenia.
  • LHS = lewa strona po lewej stronie wyrażenia.

Więcej informacji na temat innych operatorów oraz określenie, który operator jest najbardziej odpowiedni dla danego zapytania, zawiera sekcja operatory łańcuchowe danych typu danych.

Operatory bez rozróżniania wielkości liter są obecnie obsługiwane tylko w przypadku tekstu ASCII. W przypadku porównania innego niż ASCII należy użyć funkcji tolower () .

Wskazówki dotyczące wydajności

Wydajność zależy od typu wyszukiwania i struktury danych.

W celu uzyskania szybszych wyników należy użyć operatora, w którym jest rozróżniana wielkość liter, na przykład has_cs, a nie has.

Jeśli testowana jest obecność symbolu lub słowa alfanumerycznego, które jest powiązane znakami niealfanumerycznymi na początku lub końcu pola, w celu uzyskania szybszych wyników należy użyć produktu has lub in.

Składnia

T | where Kolumna !has (Wyrażenie)

Argumenty

  • T -dane wejściowe tabelaryczne, których rekordy mają być filtrowane.
  • Kolumna -kolumna do filtrowania.
  • Wyrażenie -Wyrażenie skalarne lub literalne.

Zwraca

Wiersze w T , dla których predykatem jest true.

Przykład

events
    | project original_time, data_source_name, name
    //--- Search for the last 5 mins of data and events don't contain login   
    | where original_time > now(-5m) and name !has "login"
    | take 2

Wyniki

Czas_początkowy nazwa_źródła_danych nazwa
2023-04-09T21:31:24.620Z microsoftWindowsSource2 Tworzenie kopii zapasowej
2023-04-09T21:31:24.620Z microsoftWindowsSource6 Kończenie składowania