第 4 章 搜索
使用自动化控制器的搜索工具在多个功能间搜索和过滤功能。在搜索字段中的 Name 菜单中提供了可缩放的搜索条件列表。
4.1. 用于搜索的规则
这些搜索提示假设您没有搜索主机。
- 搜索的典型语法包含一个字段,后跟一个值。
- 冒号用于将您要搜索的字段与值分开。
-
如果搜索没有冒号(请参阅示例 3),它将被视为一个简单的字符串搜索,其中
?search=foobar
被发送。
以下是用于搜索的语法示例:
-
name:localhost
在本示例中,用户在 name 属性中搜索字符串localhost
。如果该字符串与来自字段或 相关字段 的内容不匹配,则整个搜索将被视为字符串。 -
organization.name: 默认
示例显示了一个相关字段搜索。organization.name
中的句点将模型与字段分开。根据搜索的深度或复杂程度,您可以在查询的该部分中有多个句点。 foobar
这是一个简单字符串(关键字),搜索搜索词,它使用icontains
搜索名称和描述字段查找所有实例。如果您在术语间使用一个空格,如foo bar
,则返回包含这两个术语的结果。例如,如果术语用引号括起,例如:"foo bar"
,自动化控制器会搜索带有术语的字符串。特定名称针对 API 名称搜索。例如,
用户界面中的
管理作业是 API 中的system_job
。-
Organization:Default
this example 显示了一个相关字段搜索,但没有指定与机构一起的字段。API 支持它,这与简单的字符串搜索类似,但对组织执行了一个图标
(针对名称和描述进行搜索)。
4.1.1. 搜索字段的值
要查找某些字段的值,请参阅 API 端点以了解大量选项及其有效值。例如,如果要针对 /api/v2/jobs
> ; type
字段搜索,您可以通过对 /api/v2/jobs
执行 OPTIONS 请求并在 API 中查找 "type"
的条目来查找这些值。另外,您可以通过滚动到每个屏幕的底部来查看相关的搜索。在 /api/v2/jobs
的示例中,相关的搜索显示:
"related_search_fields": [ "modified_by__search", "project__search", "project_update__search", "credentials__search", "unified_job_template__search", "created_by__search", "inventory__search", "labels__search", "schedule__search", "webhook_credential__search", "job_template__search", "job_events__search", "dependent_jobs__search", "launch_config__search", "unifiedjob_ptr__search", "notifications__search", "unified_job_node__search", "instance_group__search", "hosts__search", "job_host_summaries__search"
字段的值来自 GET 请求中的键。未使用 URL、相关的
和 summary_fields
。相关字段的值也来自 OPTIONS 响应,但来自不同的属性。相关字段通过获取
related_search_fields
中的所有值并从末尾去除 __search
来填充。
任何不是以来自字段的值或相关字段中的值开头的搜索都将被视为通用字符串搜索。例如,搜索 localhost
会导致 UI 将 ?search=localhost
作为查询参数发送到 API 端点。这是有关名称和描述字段的 icontains
搜索的快捷方式。
4.1.3. 其他与搜索相关的事项
在自动化控制器中搜索时请注意以下问题:
- 目前不支持 OR 查询的语法。所有搜索条件都是在查询参数中的 AND。
- search 参数的左侧部分可以用引号括起来支持搜索带有空格的字符串。如需更多信息,请参阅 搜索的规则。
-
目前,字段中的值是 GET 请求中预期返回的直接属性。每当针对其中一个值进行搜索时,自动化控制器都会进行_
icontains
搜索。例如,name:localhost
发回?name__icontains=localhost
。自动化控制器目前对每个字段值执行此搜索,甚至id
。