Перейти к основному содержимому
Версия: 4.1

peval

Описание

Выполняет различные операции над данными. Базируется на внутренних механизмах хранилища.

осторожно

Использование peval в запросе допустимо в случае, если перед ней находятся только команды, также работающие с внутренними механизмами хранилища. К ним относятся source и search. Это условие должно выполняться и для всех подзапросов в запросе.

Синтаксис

 | peval <field>=<expression>["," <field>=<expression>]...
ПараметрСинтаксисОписание
field<string>Название поле с результатом выполнения операции.
expression<expression>Операция (вычисление) или набор операций (вычислений), которые необходимо выполнить для нового поля.

Типы данных

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

  • string
  • numeric
  • boolean
  • null
  • multivalue
к сведению

Multivalues представляют из себя массивы значений, где каждый элемент - базовый тип.

Особенности для OpenSearch
  • Scripts в OpenSearch выполняют обработку по числовым типам полей или же keyword, если поле текстовое. В соответствии с этим для текстовых полей нужно дописывать <название поля>.keyword.
  • Регулярные выражения необходимо оборачивать в функцию regex. Она формирует правильное значение для скрипта OpenSearch:
    • Синтаксис: regex("<регулярное выражение>")
  • Позволяет выполнять собственные painless-скрипты во время выполнения команды с помощью функции _script:
    • Синтаксис: _script("<script>", (<arg_name>, <arg_value>)...) :::

Примеры

Пример №1
source nix_events-*
| search host="SPB-*"
| peval agent= agent.keyword + port
| search agent="*log*77"
| aggs values(per_number) by agent