PPL 语法

每个 PPL 查询都以 search 命令开始。它指定要搜索和检索文档的索引。

每个 PPL 查询中,PPL 仅支持一个 search 命令,并且它始终是第一个命令。search 这个词可以省略。

后续命令可以按任意顺序跟随。

语法

search source=<index> [boolean-expression]
source=<index> [boolean-expression]

参数

search 命令支持以下参数。

参数 必需/可选 描述
<index> 可选 指定要查询的索引。
<boolean-expression> 可选 指定一个求值为布尔值的表达式。

语法符号约定

PPL 命令语法使用以下符号约定。

占位符

占位符显示在尖括号 (< >) 中。这些必须替换为实际值。

示例<field> 表示您必须指定实际的字段名称,如 agefirstname

可选元素

可选元素用方括号 ([ ]) 括起来。这些可以从命令中省略。

示例

  • [+|-] 表示加号或减号是可选的。

  • [<alias>] 表示别名占位符是可选的。

必需选择项

备选方案之间的必需选择项显示在括号中,并用竖线分隔符分隔 ((option1 | option2))。您必须恰好选择指定的选项之一。

示例(on | where) 表示您必须使用 onwhere,但不能同时使用两者。

可选选择项

备选方案之间的可选选择项显示在方括号中,并用竖线分隔符分隔 ([option1 | option2])。您可以选择其中一个选项或完全省略。

示例[asc | desc] 表示您可以指定 ascdesc,或者都不指定。

重复

省略号 (...) 表示前面的元素可以重复多次。

示例

  • <field>... 表示一个或多个字段,不带逗号:field1 field2 field3

  • <field>, ... 表示逗号分隔的重复:field1, field2, field3

示例

示例 1:搜索 accounts 索引

在以下查询中,search 命令引用 accounts 索引作为源,并使用 fieldswhere 命令设置条件:

search source=accounts
| where age > 18
| fields firstname, lastname

示例 2:获取所有文档

要获取 accounts 索引中的所有文档,请将其指定为 source

search source=accounts;
account_number firstname address balance gender city employer state age email lastname
1 Amber 880 Holmes Lane 39225 M Brogan Pyrami IL 32 amberduke@pyrami.com Duke
6 Hattie 671 Bristol Street 5686 M Dante Netagy TN 36 hattiebond@netagy.com Bond
13 Nanette 789 Madison Street 32838 F Nogal Quility VA 28 null Bates
18 Dale 467 Hutchinson Court 4180 M Orick null MD 33 daleadams@boink.com Adams

示例 3:获取匹配条件的文档

要获取 accounts 索引中 account_number 等于 1 或 genderF 的所有文档,请使用以下查询:

source=accounts
| where account_number=1 or gender="F"
account_number firstname address balance gender city employer state age email lastname
1 Amber 880 Holmes Lane 39225 M Brogan Pyrami IL 32 amberduke@pyrami.com Duke
13 Nanette 789 Madison Street 32838 F Nogal Quility VA 28 null Bates