Interface Lab
返回知识库
Knowledge Architecture RAG

全局分面索引契约

知识库、素材库和风格库的侧栏分面应来自全库索引,而不是当前结果子集;结果区再解释当前 query 与筛选条件。

设计原则

分面导航既是检索控件,也是信息架构地图。若分面只从当前结果集派生,用户搜索后会失去其他分类入口,RAG 也难以稳定发现相邻知识。

大理论

库页面有两种集合:全库索引和当前结果集。全库索引回答“这里有什么结构”,当前结果集回答“这次查询命中了什么”。侧栏分类、标签、类型、许可、平台和用途应默认来自全库索引;结果区用 count、active chips、matched excerpt 和 empty recovery 解释当前结果。这样用户既能收窄,也能横向跳到相邻分类。

小知识点

  1. Facet inventory 来自全库或当前 scope,不要只来自当前 filtered items。
  2. Active chips 放在结果区顶部,可逐个删除,并保留 reset all。
  3. 侧栏链接要保留用户有意保留的 query/tag/category,而不是每点一次就丢失上下文。
  4. 如果 facet count 跟当前 query 联动,需要明确 loading、disabled、zero count 或 unavailable 状态。
  5. 空结果要显示当前约束,并提供移除某个条件、查看全库、提交缺口或相邻分类入口。
  6. RAG 入库时每条知识要有分类、标签、检索 query 和来源字段,避免只靠标题召回。

设计判断

搜索后侧栏仍能展示完整知识地图,结果区能说明当前命中数量和筛选条件,用户能单独移除 query/category/tag,说明分面契约成立。

实现建议

服务端分别获取 itemsallItemsitems 用 query/filter/limit,allItems 用当前库 scope 的宽查询。categoriestagsallItems 计算;结果区显示 items.length 和全库总数。链接统一通过 query builder 生成,避免手写字符串遗漏状态。RAG schema 中保留 retrievalQueriesZh/EncategorytagssourceLinkscaseStudy

反例/风险

输入搜索后侧栏只剩一个分类;清除分类会连搜索词一起丢掉;结果数不显示全库上下文;空结果页面没有移除条件入口;标签来自当前页分页而非全部结果;同义词没有 retrieval query,导致 agent 找不到条目。

案例分析

NN/g 把 facets 描述为围绕对象不同属性组织的多维筛选,A List Apart 将 faceted navigation 视为会影响整体信息架构的 master pattern,Carbon Search/Empty states 强调搜索范围、结果状态和恢复路径。落到 Interface-Lab,知识库侧栏必须作为全库地图存在,而结果区负责解释当前 query,因此本条直接约束知识库、素材库、风格库的未来实现。

来源链接

NN/g Filters vs. Facets: https://www.nngroup.com/articles/filters-vs-facets/ A List Apart Faceted Navigation: https://alistapart.com/article/design-patterns-faceted-navigation/ Carbon Search Pattern: https://carbondesignsystem.com/patterns/search-pattern/ Carbon Empty States: https://carbondesignsystem.com/patterns/empty-states-pattern/ Azure AI Search Facets: https://learn.microsoft.com/en-us/azure/search/search-faceted-navigation

Agent 指令

生成库页面前必须区分 allItems 与 filteredItems,侧栏分面默认来自全库索引,结果区必须展示 count、active chips、empty recovery 和可分享 URL。