Оператор !has

Фильтрует набор записей для данных, не имеющих соответствующей строки без учета регистра. !has выполняет поиск индексированных терминов, где индексированные термины — три или более символов. Если термин содержит менее трех символов, запрос сканирует значения в столбце, что происходит медленнее, чем поиск термина в индексе термина.

В следующей таблице сравниваются операторы has с использованием приведенных сокращений:

  • RHS = справа от выражения
  • LHS = левая часть выражения
Оператор Описание С учетом регистра Пример (при true)
has Правая часть представляет собой все слово в левой части Нет "North America" has "america"
!has ПЧ не является полным термином в ЛЧ Нет "North America" !has "amer"
has_cs ПЧ представляет целый термин в ЛЧ Да "North America" has_cs "America"
!has_cs ПЧ не является полным термином в ЛЧ Да "North America" !has_cs "amer"

Дополнительные сведения о других операторах и определении того, какой оператор лучше всего подходит для запроса, см. в разделе Строковые операторы типа данных.

Советы по улучшению производительности

Примечание

Производительность зависит от типа поиска и структуры данных. Рекомендации см. в статье Рекомендации по запросам.

По возможности используйте !has_cs с учетом регистра.

Синтаксис

T|whereСтолбца!has(Выражение)

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
T string ✔️ Табличные входные данные, записи которых необходимо отфильтровать.
column string ✔️ Столбец, по которому выполняется фильтрация.
expression скаляр ✔️ Скалярное или литеральное выражение, для которого выполняется поиск.

Возвращаемое значение

Строки в T, для которых предикат имеет значение true.

Пример

StormEvents
| summarize event_count=count() by State
| where State !has "NEW"
| where event_count > 3000
| project State, event_count

Выходные данные

Состояние event_count
Техас 4,701
Канзас 3,166