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 |