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
该查询返回以下结果:

示例 4:使用后缀表示法按多个字段排序
以下查询使用后缀表示法,按 gender 字段升序和 age 字段降序对所有文档进行排序:
source=accounts
| sort gender asc, age desc
| fields account_number, gender, age
该查询返回以下结果:

示例 5:对包含空值的字段排序
默认升序会将空值列在前面。以下查询按默认顺序对 employer 字段排序:
source=accounts
| sort employer
| fields employer
该查询返回以下结果:

示例 6:通过指定字段类型排序
以下查询使用 sort 命令结合 str(),按字典顺序对数值进行排序:
source=accounts
| sort str(account_number)
| fields account_number
该查询返回以下结果:
| account_number |
|---|
| 1 |
| 13 |
| 18 |
| 6 |