Search API

全文搜尋所有技能。

搜尋技能

GET /api/v1/skills/search

參數

| 參數 | 類型 | 描述 | |-----------|------|-------------| | q | string | 搜尋查詢(必填) | | page | number | 頁碼(預設:1) | | limit | number | 每頁項目數(預設:20) | | category | string | 依分類篩選 | | platform | string | 依平台篩選 | | minStars | number | 最低星數 | | hasIndex | boolean | 具有 marketplace.json |

請求範例

bash
curl "https://skillsmp.com/api/v1/skills/search?q=react+typescript&category=frontend&minStars=100"

回應範例

json
{
  "data": [
    {
      "id": "456",
      "owner": "community",
      "repo": "react-typescript-guide",
      "name": "React TypeScript Guide",
      "description": "Type-safe React development patterns",
      "stars": 890,
      "score": 15.7,
      "highlights": {
        "name": "<mark>React</mark> <mark>TypeScript</mark> Guide",
        "description": "Type-safe <mark>React</mark> development patterns"
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 45,
    "totalPages": 3
  },
  "meta": {
    "query": "react typescript",
    "took": 23
  }
}

搜尋語法

基本搜尋

react components

在所有文字欄位中搜尋這些詞彙。

精確詞組

"react hooks"

匹配精確詞組。

特定欄位

name:react description:hooks

搜尋特定欄位。

排除

react -class

使用減號排除詞彙。

萬用字元

react*

前綴匹配。

搜尋技巧

有效查詢

好的:

  • react hooks state management - 具體詞彙
  • "code review" security - 詞組 + 詞彙
  • typescript name:react - 特定欄位

較不有效:

  • the best react skill - 停用詞會被忽略
  • r - 太短
  • * - 太廣泛

相關性評分

結果按以下方式排序:

  1. 精確匹配 - 完整詞彙匹配
  2. 欄位權重 - 名稱 > 描述 > 內容
  3. 熱門程度 - 星數加成
  4. 新鮮度 - 最近更新加成

自動完成

GET /api/v1/skills/autocomplete

參數

| 參數 | 類型 | 描述 | |-----------|------|-------------| | q | string | 部分查詢 | | limit | number | 最大建議數(預設:5) |

請求範例

bash
curl "https://skillsmp.com/api/v1/skills/autocomplete?q=rea"

回應範例

json
{
  "data": [
    {
      "text": "react",
      "count": 89
    },
    {
      "text": "react hooks",
      "count": 34
    },
    {
      "text": "react typescript",
      "count": 28
    }
  ]
}

錯誤處理

| 代碼 | 描述 | |------|-------------| | INVALID_QUERY | 查詢為空或太短 | | QUERY_TOO_LONG | 查詢超過 200 個字元 | | INVALID_SYNTAX | 搜尋語法格式錯誤 |