search
Описание
Выполняет поиск по данным.
Использование search в запросе допустимо в случае, если перед ней находятся только команды, также работающие с внутренними механизмами хранилища. К ним относятся source и peval. Это условие должно выполняться и для всех подзапросов в запросе.
Синтаксис
search <mode> <compare>
Обязательные аргументы
| Параметр | Синтаксис | Описание |
|---|---|---|
compare | <field> > | >= | == | < | <= | != <field> | <value> | <search_in> | Условная операция для сравнения данных. |
Опциональные аргументы
| Параметр | Синтаксис | По умолчанию | Описание |
|---|---|---|---|
mode | (|regex|wildcard|cidr) | Режим поиска: regex поиск по регулярному выражению; wildcard поиск с использованием подстановочных символов * и ?; cidr поиск по маске подсети. |
Режим поиска
regex- поиск по регулярному выражениюwildcard- поиск с использованием подстановочных символов*и?cidr- поиск по маске подсетиtext- поиск по текстовому полю (используется, если включена настройка автоподстановки keyword)
Если между условиями нет оператора, то по умолчанию используется оператор AND.
Значение (<value>) можно указывать без двойных кавычек, если в нем нет разделителей или специальных символов.
По умолчанию поиск по регулярному выражению regex является регистронезависимым. Для добавления чувствительности к регистру
при поиске по регулярному выражению необходимо использовать параметр sens в поисковом запросе.
Search in
| Синтаксис | Описание |
|---|---|
<field> in (<value>, <value>) | Конструкция search in позволяет выполнять поиск событий, значение поля <field> которых равно одному из перечисленных значений <value>. |
В значениях <value> можно использовать * для wildcard поиска.
Примеры запросов
Пример 1
В этом примере будет выполнен поиск документов, где поле user содержит значение Ivanov или значение, начинающееся с Mar.
...
| search user=Ivanov OR user="Mar*"
Пример входных документов:
| user |
|---|
| Ivanov |
| Maria |
| Petrov |
| John |
| mary |
Результатом выполнения запроса может быть следующая таблица:
| user |
|---|
| Ivanov |
| Maria |
| mary |
Пример 2
В этом примере будет выполнен поиск документов, где значение поля count_result равно 5, значение поля nick начинается с Iv и значение поля mail начинается с iv*.
...
| search count_result=5 AND nick="Iv*" mail="iv*"
Пример входных документов:
| nick | count_result | |
|---|---|---|
| Ivanov | ivanov@example.com | 5 |
| Ivy | ivy123@example.com | 4 |
| ivan | 123ivan@example.com | 5 |
Результатом выполнения запроса может быть следующая таблица:
| nick | count_result | |
|---|---|---|
| Ivanov | ivanov@example.com | 5 |
Пример 3
В этом примере будет выполнен поиск документов, где поле score больше или равно 5, а поле status не равно active.
...
| search score>=5 AND NOT status="active"
Пример входных документов:
| user | status | score |
|---|---|---|
| Ivanov | active | 5 |
| Maria | inactive | 4 |
| Anna | inactive | 11 |
Результатом выполнения запроса может быть следующая таблица:
| nick | count_result | |
|---|---|---|
| Anna | inactive | 11 |
Пример 4
В этом примере будет выполнен поиск документов, где поле place соответствует Hotel или Motel по регулярному выражению regex.
...
| search regex place.keyword="(Ho|Mo)tel"
Пример входных документов:
| place |
|---|
| Hotel |
| motel |
Результатом выполнения запроса может быть следующая таблица:
| place |
|---|
| Hotel |
Пример 5
В этом примере будет выполнен поиск документов, где поле name начинается с An, за которым следует li и ровно один любой символ.
...
| search wildcard name="An*li?"
Пример входных документов:
| user |
|---|
| Anna |
| Anatoly |
| Anzli |
| Annalisa |
| Anli |
Результатом выполнения запроса может быть следующая таблица:
| user |
|---|
| Anzli |
| Annalisa |
| Anli |
Пример 6
В этом примере будет выполнен поиск документов, где IPv4-адрес в поле host входит в подсеть 10.78.0.0/16.
...
| search cidr host="10.78.0.0/16"
Пример входных документов:
| host |
|---|
| 10.78.1.23 |
| 192.168.1.1 |
| 2001:0db8::1 |
Результатом выполнения запроса может быть следующая таблица:
| host |
|---|
| 10.78.1.23 |
Пример 7
В этом примере будет выполнен поиск документов, где IPv6-адрес в поле host входит в подсеть 2001::/4.
...
| search cidr host="2001::/4"
Пример входных документов:
| host |
|---|
| 2001:0db8::1 |
| fe80::1 |
| 3000::1 |
| 2002:aabb::1234 |
Результатом выполнения запроса может быть следующая таблица:
| host |
|---|
| 2001:0db8::1 |
| 2002:aabb::1234 |
Пример 8
В этом примере будет выполнен поиск документов, где значение поля user равно Ivanov или начинается с Mar.
...
| search user in (Ivanov, "Mar*")
Пример входных документов:
| | user | | -| | Ivanov | | Maria | | Petrov | | Ivanova | | John | | mary |
Результатом выполнения запроса может быть следующая таблица:
| user |
|---|
| Ivanov |
| Maria |
| mary |