搜索 API 完整指南
GET /api/v1/search — 四层回退搜索引擎,中文友好,免 Key 调用。
GET
/api/v1/search
全字段四层回退搜索引擎。当精确匹配失败时自动降级到模糊搜索,确保中文关键词也能获得良好结果。
搜索流程
搜索引擎采用四层回退策略,确保尽可能找到相关结果:
FULLTEXT 精确匹配
→
LIKE 模糊匹配
→
keywords 2-gram
→
body 全文搜索
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
q | string | 必填 | 搜索关键词,支持中英文。示例:六味地黄丸、React Hook、MCP |
category | string | 可选 | 大类筛选。可选值:中医 / 软件开发 / AI / 办公技能 / External |
sub | string | 可选 | 子类筛选。共 33 子类,如 经方、方剂学、前端、后端、数据库 等 |
limit | integer | 可选 | 返回条数上限。默认 20,最大 100 |
请求示例
基础搜索
curl "https://ixno.com/api/v1/search?q=地黄"
按大类筛选
curl "https://ixno.com/api/v1/search?q=Hook&category=软件开发"
按子类筛选 + 限制条数
curl "https://ixno.com/api/v1/search?q=经方&category=中医&sub=伤寒论&limit=10"
Python SDK
from ixno_sdk import IXNOClient
client = IXNOClient()
results = client.search(q="地黄", category="中医", limit=10)
for gene in results:
print(f"{gene.name}: {gene.desc} (fitness={gene.fitness})")
TypeScript SDK
import { IXNOClient } from 'ixno-sdk-ts';
const client = new IXNOClient();
const results = await client.search({ q: 'Hook', category: '软件开发', limit: 10 });
results.forEach(gene => {
console.log(`${gene.name}: ${gene.desc}`);
});
响应格式
{
"query": "地黄",
"total": 42,
"results": [
{
"gene_id": "tcm-001",
"name": "六味地黄丸",
"desc": "滋阴补肾经典方剂,出自《小儿药证直诀》",
"fitness": 0.95,
"domain": "中医",
"layer": "S0",
"source": "经典方剂",
"method": "manual",
"tags": "[\"滋阴\",\"补肾\",\"经典方\"]",
"version": "1.0",
"_score": 6.15
},
{
"gene_id": "tcm-042",
"name": "知柏地黄丸",
"desc": "滋阴降火,在六味地黄丸基础上加知母、黄柏",
"fitness": 0.88,
"domain": "中医",
"layer": "S1",
"source": "经典方剂",
"method": "derivation",
"tags": "[\"滋阴\",\"降火\"]",
"version": "1.0",
"_score": 5.72
}
]
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
query | string | 实际搜索关键词 |
total | integer | 匹配的基因总数 |
results | array | 基因列表,按相关度降序排列 |
results[].gene_id | string | 基因唯一标识 |
results[].name | string | 基因名称 |
results[].desc | string | 基因描述 |
results[].fitness | number | 适应度分数 0-1,越高越好 |
results[].domain | string | 所属领域 |
results[].layer | string | 进化层级 |
results[].tags | string | 标签 JSON 数组(字符串格式) |
results[]._score | number | 搜索相关度得分 |
搜索技巧
技巧 1:缩短关键词
搜索无结果时,缩短关键词重试。例如"六味地黄丸"搜不到时,改用"地黄"或"滋阴"。
搜索无结果时,缩短关键词重试。例如"六味地黄丸"搜不到时,改用"地黄"或"滋阴"。
技巧 2:关注 fitness 分数
fitness > 0.8 的基因质量最高,优先参考。fitness 反映该基因经过进化验证的适应度。
fitness > 0.8 的基因质量最高,优先参考。fitness 反映该基因经过进化验证的适应度。
技巧 3:善用分类筛选
如果关键词跨领域(如"数据分析"可能出现在 AI 和办公技能),用 category 参数缩小范围。
如果关键词跨领域(如"数据分析"可能出现在 AI 和办公技能),用 category 参数缩小范围。
注意:tags 字段是字符串
tags 字段返回的是 JSON 数组的字符串表示(如
tags 字段返回的是 JSON 数组的字符串表示(如
["标签1","标签2"]),使用前需要 JSON.parse()。
大类与子类参考
| 大类 (category) | 子类示例 (sub) |
|---|---|
| 中医 | 经方、方剂学、伤寒论、本草、针灸、温病 |
| 软件开发 | 前端、后端、数据库、DevOps、算法 |
| AI | Agent、Prompt、RAG、Fine-tuning |
| 办公技能 | Excel、PPT、文档处理、数据分析 |
| External | 外部集成工具 |