1.13. 搜索查询 API


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

1.13.1. 概述

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

1.13.1.1. 版本信息

版本 : 2.10.0

1.13.1.2. URI scheme

BasePath : /searchapi/graphql
Schemes : HTTPS

1.13.1.3. 配置 API 访问

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

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

重要: 您必须配置路由来保护您的环境。如需了解更多详细信息,请参阅 OpenShift Container Platform 文档中的路由配置。https://docs.redhat.com/documentation/en-us/openshift_container_platform/4.15/html-single/networking/index#route-configuration

1.13.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.13.2.1. 查询输入的描述表

类型描述属性

SearchFilter

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

string

SearchInput

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

字符串

limit

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

整数

1.13.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.13.3. 通用模式

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

1.13.4. 支持的查询

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

1.13.4.1. 搜索部署

query:

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

变量:

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

1.13.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.