Search Message extension 如何为用户提供符合示例的筛选功能?
搜索消息扩展筛选功能实现方案
搜索消息扩展完全支持自定义筛选能力,可通过以下方式实现:
核心实现逻辑
支持搜索消息扩展的协作平台(如Teams)在搜索响应结构中预留了筛选器配置字段,你只需在接口返回中填充对应配置即可实现需求。
实现步骤
- 在搜索接口返回的
composeExtension节点下新增filters数组,数组内每个对象对应一组筛选维度,可配置筛选的显示名称、参数名、类型、选项列表 - 目前支持的筛选类型包含单选下拉
dropDown、多选复选框multiSelect两类,可按需选择 - 用户勾选筛选选项后,平台会将选中的筛选值和搜索关键词一起作为请求参数回传给你的后端服务,你在后端处理逻辑中加入筛选条件查询,返回过滤后的结果即可
返回结构示例
{ "composeExtension": { "type": "result", "filters": [ { "name": "内容类型", "parameterName": "contentType", "type": "dropDown", "options": [ {"title": "全部", "value": "all"}, {"title": "普通消息", "value": "normal"}, {"title": "富文本消息", "value": "rich"}, {"title": "文件消息", "value": "file"} ] }, { "name": "发送范围", "parameterName": "sendScope", "type": "multiSelect", "options": [ {"title": "单聊", "value": "single"}, {"title": "群聊", "value": "group"}, {"title": "频道", "value": "channel"} ] } ], "attachmentLayout": "list", "attachments": [ // 你的搜索结果卡片配置 ] } }
边界规则说明
- 单组筛选的选项数量最多支持100个,超过会被平台自动截断
- 最多可同时配置5组不同的筛选维度
- 如需实现联动筛选,可在每次接收筛选参数后,动态调整返回的
filters配置中的选项列表即可
内容的提问来源于stack exchange,提问作者user25879
相关产品推荐
相关产品推荐

