Wildcards
Для поиска части подстроки в поисковом запросе следует использовать wildcard-символы. В зависимости от команд поиск с использованием wildcard будет иметь разный синтаксис. Для таких команд, как eval
, where
, like
используется символ %
. Для команды search
справедливо использование символа *
. Примеры использования команд в языке запросов Smart Monitor Language
можно посмотреть в статье.
Рекомендации по использованию wildcard-символов
Поисковый движок при указании символа *
будет извлекать события с использованием жадного
алгоритма, то есть будут возвращены все события. Такой поиск является излишним и использует много ресурсов кластера. Для избежания подобных проблем необходимо выполнять конкретный поиск, чем точнее будет поисковый запрос, тем эффективнее работает поисковый движок.
Когда следует избегать wildcard-символов
Существует несколько ситуаций, в которых следует избегать использования wildcard:
-
Использование wildcard-символов в середине строки. Знаки в середине слова или строки могут привести к противоречивым результатам
-
Использование wildcard-символов в начале условий поискового запроса, так как их использование может вызвать проблемы с производительностью работы поискового движка
Поиск символа звездочки
Поиск символа звездочки ( *
) не возможен, поскольку этот символ зарезервирован как wildcard-символ. Однако, можно выполнить поиск по термину без звездочки, а затем использовать команду where
или регулярное выражение (команда rex
) для фильтрации результатов.