技术博客
十万个为什么 API 关键词检索技巧:keyword 命中规律与避坑

十万个为什么 API 关键词检索技巧:keyword 命中规律与避坑

作者: 万维易源
2026-09-02
十万个为什么 API关键词检索keyword命中规律免费接口
# 十万个为什么 API 关键词检索技巧:keyword 命中规律与避坑 > 接口:十万个为什么(apiCode=1706)· 接入点:列表(1706-1) · 免费 · 请求方式:POST/GET · 返回格式:JSON · 适用人群:已接入开发者 / 运营 · 阅读时间:约 6 分钟 ## 核心要点 - 列表接入点 `keyword` **必填**,是检索的唯一入口;它按关键词匹配问题标题/内容。 - 命中结果量差异很大:常见词(如"地球")示例返回 `allNum=210`,冷门或过长短语可能很少甚至为空。 - 少结果时优先"缩短为核心名词""换近义词",而不是反复加长句子。 ## Why:关键词选得好,体验差很多 孩子问"为什么天空是蓝色的",如果直接把整句塞进 `keyword`,大概率命中寥寥。接口是按关键词检索,不是语义问答。把长问题提炼成核心名词("天空""蓝色"),命中率立刻提升。这篇讲清楚命中规律和几个避坑点。 ## What:keyword 参数速览 | 项 | 说明 | |----|------| | 参数 | `keyword`(列表接入点,必填) | | 示例 | "地球" → `allNum=210` | | 配套 | `page` 控制翻页 | | 返回 | `contentlist[{id,title}]`、`allNum`、`allPages` | ## How:检索实践 **步骤 1 — 必填校验** ```python import requests APP_KEY = "YOUR_APPKEY" def search(keyword): if not keyword or not keyword.strip(): raise ValueError("keyword 为必填项,不能为空") r = requests.post("https://route.showapi.com/1706-1", data={"keyword": keyword.strip()}, params={"appKey": APP_KEY}, headers={"content-type": "application/x-www-form-urlencoded"}, timeout=10).json() body = r["showapi_res_body"] if body.get("ret_code") != "0": raise RuntimeError(body.get("remark")) return body ``` **步骤 2 — 长问题提炼为核心名词** ```python # "为什么天空是蓝色的?" -> 取核心名词 candidates = ["天空", "蓝色", "天为什么蓝"] for kw in candidates: body = search(kw) print(kw, "命中", body["allNum"], "条") # 选命中量最合理的一个展示 ``` **步骤 3 — 少结果兜底** ```python body = search("天空") if int(body["allNum"]) == 0: # 换近义词或缩短:天空 -> 天 body = search("天") ``` ## 返回示例与解析 `keyword="地球"` 返回 `allNum=210`、`allPages=5`、`maxResult=50`,`contentlist` 含"地球名片""地球同步轨道和地球静止轨道"等。可见匹配是"包含该关键词的问题"。 ## 进阶 / 边界 - **空结果处理**:`allNum=0` 时给"没找到相关问题,换个说法试试",不要当成接口错误。 - **不要整句检索**:把"为什么…"整句作 keyword 命中很低,提炼名词效果更好。 - **档位成本**:每次检索是一次列表调用,计入免费档位;热门词结果可缓存(见[《免费档位下:用缓存策略节省调用次数》](https://www.showapi.com/guides/why100k-free-tier-cache-1706))。 ## FAQ **Q1:keyword 可以不传吗?** 不可以,`keyword` 是必填项,缺失会调用失败(看 `remark`)。 **Q2:传整句话能搜到吗?** 可能命中很少。接口按关键词匹配,建议传核心名词。 **Q3:allNum=0 是接口坏了吗?** 不一定,通常是该词无匹配问题,换近义词或缩短再试。 **Q4:支持多个关键词吗?** 文档仅给出单个 `keyword` 参数,未提及多词/布尔检索,按单关键词使用。 **Q5:搜索有热度/排序字段吗?** 返回未提供热度或排序字段,结果顺序以接口实际返回为准。 ## 相关能力 / 下一步阅读 - [十万个为什么 API 分页查询:page / allPages / allNum / maxResult 详解](https://www.showapi.com/guides/why100k-pagination-1706) - [十万个为什么 API:5 分钟接入,从第一条问答到完整详情](https://www.showapi.com/guides/why100k-quickstart-1706) - [十万个为什么 API 免费档位下:用缓存策略节省调用次数](https://www.showapi.com/guides/why100k-free-tier-cache-1706) - **本系列共 11 篇**:查看[十万个为什么 API 指南总目录](https://www.showapi.com/guides/why100k-guides-1706)