sort

sort 命令用于按指定字段对搜索结果进行排序。

语法

sort 命令支持两种语法表示法。在单个 sort 命令中必须一致使用一种表示法。

前缀表示法

sort 命令在前缀表示法中的语法如下:

sort [<count>] [+|-] <field> [, [+|-] <field>]...

后缀表示法

sort 命令在后缀表示法中的语法如下:

sort [<count>] <field> [asc|desc|a|d] [, <field> [asc|desc|a|d]]...

参数

sort 命令支持以下参数。

参数 必需/可选 描述
<field> 必需 用于排序的字段。使用 auto(field)str(field)ip(field)num(field) 来指定如何解释字段值。可以指定多个字段,以逗号分隔列表形式。
<count> 可选 要返回的结果数量。值为 0 或更小表示返回所有结果。默认值为 0
[+|-] 可选 仅限前缀表示法。 加号 (+) 指定升序,减号 (-) 指定降序。默认为升序。
[asc|desc|a|d] 可选 仅限后缀表示法。 指定排序顺序:asc/a 表示升序,desc/d 表示降序。默认为升序。

示例 1:按一个字段排序

以下查询按 age 字段升序对所有文档进行排序。默认情况下,sort 命令返回所有结果,这等同于指定 sort 0 age

source=accounts
| sort age
| fields account_number, age

该查询返回以下结果:

account_number age
13 28
1 32
18 33
6 36

示例 2:按一个字段降序排序

以下查询按 age 字段降序对所有文档进行排序。您可以使用前缀表示法 (- age) :

source=accounts
| sort - age
| fields account_number, age

该查询返回以下结果:

account_number age
6 36
18 33
1 32
13 28

示例 3:使用前缀表示法按多个字段排序

以下查询使用前缀表示法,按 gender 字段升序和 age 字段降序对所有文档进行排序:

source=accounts
| sort + gender, - age
| fields account_number, gender, age

该查询返回以下结果:

../../../../_images/sort-3.png

示例 4:使用后缀表示法按多个字段排序

以下查询使用后缀表示法,按 gender 字段升序和 age 字段降序对所有文档进行排序:

source=accounts
| sort gender asc, age desc
| fields account_number, gender, age

该查询返回以下结果:

../../../../_images/sort-4.png

示例 5:对包含空值的字段排序

默认升序会将空值列在前面。以下查询按默认顺序对 employer 字段排序:

source=accounts
| sort employer
| fields employer

该查询返回以下结果:

../../../../_images/sort-5.png

示例 6:通过指定字段类型排序

以下查询使用 sort 命令结合 str(),按字典顺序对数值进行排序:

source=accounts
| sort str(account_number)
| fields account_number

该查询返回以下结果:

account_number
1
13
18
6