1.12. 搜索查询 API


搜索查询 API 不是 Kubernetes API,因此无法通过 Red Hat OpenShift Container Platform API Explorer 显示。继续阅读以了解搜索查询 API 功能。

1.12.1. 概述

您可以使用路由公开搜索查询 API,并使用 API 解析搜索查询。API 是一个 GraphQL 端点。您可以使用任何客户端,如 curl 或 Postman。

1.12.1.1. 版本信息

版本 : 2.8.0

1.12.1.2. URI scheme

basePath : /searchapi/graphql
Schemes : HTTPS

1.12.1.3. 配置 API 访问

使用以下命令,创建路由以访问集群外部的搜索 API:

oc create route passthrough search-api --service=search-search-api -n open-cluster-management

重要: 您必须配置路由来保护您的环境。如需了解更多详细信息,请参阅 OpenShift Container Platform 文档中的 Route 配置

1.12.2. 模式设计

input SearchFilter {
  property: String!
  values: [String]!
}
input SearchInput {
  keywords: [String]
  filters: [SearchFilter]
  limit: Int
  relatedKinds: [String]
}
type SearchResult {
count: Int
items: [Map]
related: [SearchRelatedResult]
}
type SearchRelatedResult {
kind: String!
count: Int
items: [Map]
}

带有 ! 的参数表示需要字段。

1.12.2.1. 查询输入的描述表

类型描述属性

SearchFilter

定义用于过滤结果的键和值。当您为属性提供多个值时,API 会将值解释为"OR"操作。当您提供多个过滤器时,结果会匹配所有过滤器,API 会解释为"AND"操作。

字符串

SearchInput

输入关键字以接收资源列表。当您提供许多关键字时,API 会将它解析为"AND"操作。

字符串

limit

确定输入查询后返回的最大结果数。默认值为 10,000。值 -1 表示删除了限制。

整数

1.12.2.2. 模式示例

{
  "query": "type SearchResult {count: Intitems: [Map]related: [SearchRelatedResult]} type SearchRelatedResult {kind: String!count: Intitems: [Map]}",
  "variables": {
    "input": [
      {
        "keywords": [],
        "filters": [
          {
            "property": "kind",
            "values": [
              "Deployment"
            ]
          }
        ],
        "limit": 10
      }
    ]
  }
}

1.12.3. 通用模式

type Query {
  search(input: [SearchInput]): [SearchResult]
  searchComplete(property: String!, query: SearchInput, limit: Int): [String]
  searchSchema: Map
  messages: [Message]
}

1.12.4. 支持的查询

继续读取以查看 JSON 格式支持的查询类型。

1.12.4.1. 搜索部署

query:

query mySearch($input: [SearchInput]) {
    search(input: $input) {
    		items
        }
}

变量:

{"input":[
    {
        "keywords":[],
        "filters":[
            {"property":"kind","values":["Deployment"]}],
        "limit":10
    }
]}

1.12.4.2. 搜索 pod

query:

query mySearch($input: [SearchInput]) {
    search(input: $input) {
    		items
        }
}

变量:

{"input":[
    {
        "keywords":[],
        "filters":[
            {"property":"kind","values":["Pod"]}],
        "limit":10
    }
]}
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.