你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
搜索与查询,为什么要分开?
找相关内容,与按明确条件取得记录,是两类请求。
“找一下关于界面协议的文章”和“找出类型为 concept、主题为 afs-ui-system 的记录,按顺序排列”,听起来都是找东西,要求却不一样。
搜索常以文字表达意图,由具体实现决定在哪些内容中匹配、怎样排序。结构化查询把条件、排序或选取字段明确写出来,调用者可以按这些条件理解结果。
| 问题 | 更接近哪一种 |
|---|---|
| 有哪些文章谈到 X Window? | 文本搜索 |
| 哪些知识节点属于“界面的协议表达”? | 按字段条件查询 |
| 只取得这些节点的名称,并按作者指定顺序返回 | 查询中的字段选择与排序 |
这个 Learning 目录也体现了后一种需要:页面不能每次随意挑几个看起来相关的节点,它要按内容声明的主题和顺序展示。
AFS 的 collection query 是可选的严格能力。声明支持时,实现应执行完整的查询要求,不能把不认识的条件悄悄忽略后仍当成成功。自由文本 search 的覆盖范围和排序则需要看具体 Provider。
不要只因两个请求最后都返回一组条目,就把它们的含义和保证当成一样。
继续深入
检查一下理解
查询中不支持的条件,能不能忽略后仍返回“成功”?
严格的 collection query 合同不允许这样做;声明支持就应执行完整要求,否则要明确拒绝。
沿着学习路径继续
- 从找到资源,到可靠地操作它第 5 / 6 步