# 搜索文章

按查询词搜索知乎文章与回答。

ID: task:zhihu_search_articles_v1 · Region: cn · Status: unavailable

catalog_version: 5c920c774a55e44d7e8c709143b88a18b8b2afcef91a5d19a8c9ae5d565d9077
updated_at: 2026-10-21T12:06:16.523771+00:00

按查询词搜索知乎文章与回答。

历史数据以数据集发布版本定义覆盖周期；实时读取反映请求时资料，不保证覆盖全部记录。

Docs: https://docs.asklear.cn/capabilities/task%3Azhihu_search_articles_v1

## POST /v1/search

legacy · unavailable · api_key, oauth

REST 需要客户 API Key；MCP 需要已开放的服务及现有授权；CLI 需要已发布且包含该命令的客户端。

按页翻页，使用 `page`。
只返回公开 Search 响应字段，不暴露来源续页 URL。
最多 50 页。

每个成功任务 2 Credits

请求声明 idempotency_key 时，同一次操作复用原键；元数据 GET 只读。

等待态响应提供结果/状态引用。先读取原结果；超时或结果不明时禁止自动重新提交付费执行。401/403/422 应先修正鉴权、权限或输入。

### Input schema / 输入契约

```json
{
  "$defs": {
    "Schema1": {
      "additionalProperties": false,
      "description": "Common filter names with source-specific values checked after parsing.\n\n``sort`` stays a bounded string here because ``SearchSourceDefinition``\nowns each provider's vocabulary.",
      "properties": {
        "sort": {
          "enum": [
            "created_time",
            "upvoted_count"
          ]
        },
        "time_range": {
          "enum": [
            "a_day",
            "a_month",
            "a_week",
            "a_year",
            "half_a_year",
            "three_months"
          ]
        }
      },
      "required": [],
      "type": "object"
    },
    "Schema2": {
      "additionalProperties": false,
      "description": "Exactly one public image reference accepted by the Search API.",
      "properties": {
        "asset_id": {
          "anyOf": [
            {
              "maxLength": 128,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "base64": {
          "anyOf": [
            {
              "maxLength": 8388608,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "url": {
          "anyOf": [
            {
              "maxLength": 2048,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Public request shape shared by text, image, and hybrid sources.",
  "properties": {
    "filters": {
      "$ref": "#/$defs/Schema1"
    },
    "image": {
      "anyOf": [
        {
          "$ref": "#/$defs/Schema2"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "max_credits": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "page": {
      "default": 1,
      "maximum": 50,
      "minimum": 1,
      "type": "integer"
    },
    "page_token": {
      "const": ""
    },
    "query": {
      "anyOf": [
        {
          "maxLength": 200,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "maxLength": 100
    },
    "search_mode": {
      "enum": [
        "text"
      ]
    },
    "source": {
      "const": "zhihu_article"
    },
    "task_query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional task attribution: when provided, write one concise, self-contained task_query in the user's language and reuse that exact value in every call for the task, including discovery, search, approval retry, results, export, and status checks. For MCP calls, when omitted, Asklear records a generic non-user-specific attribution so compatible clients can still call the tool. REST calls may omit it and remain unattributed. It is a task description, not a task identifier. Do not include hidden reasoning, credentials, or direct personal identifiers such as phone numbers, email addresses, identity numbers, or street addresses.",
      "maxLength": 300
    }
  },
  "required": [
    "source",
    "query"
  ],
  "type": "object"
}
```

### Synthetic request / 合成请求

```json
{
  "filters": {},
  "page": 1,
  "query": "示例关键词",
  "search_mode": "text",
  "source": "zhihu_article"
}
```

### Synthetic response / 合成响应

```json
{
  "data": {
    "items": [],
    "pagination": {
      "has_more": false
    }
  }
}
```

- data.items (array<object>): 本页返回的公开 Search 结果。
- data.items[].entity_id (string): 结果的稳定公开标识。
- data.items[].title (string|null): 如有则返回公开标题。
- data.items[].url (string|null): 如有则返回公开结果 URL。
- data.items[].snippet (string|null): 如有则返回来源无关的文本摘要。
- data.items[].article_id (string|null): 文章公开标识。
- data.items[].type (string|null): 公开内容类型。
- data.items[].summary (string|null): 如有则返回公开摘要。
- data.items[].published_at (integer|null): 以 Unix 秒表示的发布时间。
- data.items[].updated_at (integer|null): 以 Unix 秒表示的更新时间。
- data.items[].voteup_count (integer|null): 赞同数。
- data.items[].comment_count (integer|null): 评论数。
- data.items[].favorite_count (integer|null): 收藏数。
- data.items[].author_id (string|null): 作者 ID。
- data.items[].author_name (string|null): 作者显示名称。
- data.pagination.has_more (boolean): 是否还有下一页公开 Search 结果。
- data.pagination.page (integer|null): 当前公开页码。
- data.pagination.next_page (integer|null): 如有则返回下一公开页码。

Follow up: GET /v1/search/{job_id}
Read a pending search and its public results.

