dify元数据过滤功能可实现按部门、文档类型和时间精准检索:先创建英文小写字段,再批量打标,接着在知识检索节点设置“且”关系过滤条件,最后通过调试验证结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让客服只看到财务部的政策文件、让研发人员自动避开过期的技术文档、让销售团队在提问时系统自动跳过人事制度类内容——这些需求不能靠人工筛选,必须用Dify元数据过滤功能在检索源头就完成精准拦截与定向放行。
第一步:设计并创建元数据字段
进入知识库 → 点击右上角「设置」→ 选择「元数据」标签页 → 点击「新建元数据」。
为每个业务维度创建一个字段,字段名必须用英文、小写字母和下划线组合,例如 department、doc_type、effective_date。中文字段名会导致后续过滤条件无法生效。
字段类型按需选择:部门/类型用「字符串」;保密等级/版本号用「数字」;生效时间/发布日期用「时间」。时间字段必须填入标准ISO格式(如 2024-03-15 或 2024-03-15T09:00:00),否则过滤将完全失效。
第二步:批量为文档打标
回到知识库文档列表页,勾选多个文档 → 点击底部「元数据」按钮 → 在弹窗中为每个字段填入对应值。
方法一:手动填写
适用于文档数量少、标签差异大(如每份合同归属不同客户)。注意字符串值要严格匹配,【“财务部”≠“财务”≠“finance”】,大小写和空格都影响过滤结果。
方法二:上传CSV批量注入
准备一个CSV文件,首行为字段名(department,doc_type,effective_date),后续每行对应一份文档的标签值。Dify支持直接拖入该文件完成批量赋值,效率提升10倍以上。
第三步:在知识检索节点中启用过滤
进入工作流编辑器 → 找到「知识检索」节点 → 展开「高级设置」→ 开启「元数据过滤」开关。
① 添加第一个过滤条件:点击「+ 添加条件」→ 字段选 department → 操作符选「等于」→ 值填“财务部”。
② 添加第二个过滤条件:再点「+ 添加条件」→ 字段选 doc_type → 操作符选「包含」→ 值填“政策”。
③ 添加第三个过滤条件:字段选 effective_date → 操作符选「大于等于」→ 值填 2024-01-01。
三个条件默认是「且」关系,系统只会返回同时满足这三项的文档。如果想改成「或」逻辑,必须改用代码节点调用API,图形界面不支持切换。
这一步操作起来很简单,直接把文件拖进去就行。
第四步:验证过滤是否生效
保存工作流后,点击右上角「调试」→ 在输入框中输入任意测试问题(如“最新报销流程是什么?”)→ 查看右侧「检索上下文」面板。
若看到返回的文档全部来自财务部、类型含“政策”、且创建时间在2024年之后,说明过滤已生效。若出现任一不符合项,立即检查对应文档的元数据值是否拼写一致、时间格式是否合规、字段名是否全小写无空格。
注意:调试模式下不会触发权限控制,仅验证检索范围。上线后需配合用户角色配置,才能实现真正的部门级隔离。










