用途:当工作区未知时,通过 Microsoft Fabric 的 Catalog Search API 跨所有工作区查找项目(item),支持按显示名、描述或工作区名搜索,也支持列出某类型的全部项目。
主要能力:搜索匹配项目的显示名、描述与工作区名;用 filter 按类型过滤(仅支持 eq、ne、or 和括号,如 Type eq 'Lakehouse'、Type ne 'Notebook');用空搜索字符串加类型过滤可列出该类型全部项目;响应含 id、type、displayName、description 和 hierarchy.workspace(含 id 与 displayName);支持 continuationToken 分页,pageSize 范围 1–1000。
使用方式:先完成认证,Catalog Search API 需要 Catalog.Read.All 权限。请求为 POST https://api.fabric.microsoft.com/v1/catalog/search。建议把 JSON 请求体写入临时文件以规避 shell 引号问题,例如 cat > /tmp/body.json,再执行 az rest --method post --resource "https://api.fabric.microsoft.com" --url "https://api.fabric.microsoft.com/v1/catalog/search" --body @/tmp/body.json。所有对 api.fabric.microsoft.com 的调用(含每次 LRO 轮询、fabric_lro 与重试)都必须携带 x-ms-fabric-skill: search-consumption-cli,az rest 用 --headers "x-ms-fabric-skill=search-consumption-cli"。可用 --query 提取 item 与 workspace 的 id,或用 jq 处理嵌套的 hierarchy.workspace。
适用场景:定位某个已知名称的报告、湖仓或语义模型等;跨工作区清点某类型项目;结果存文件供后续消费。若多个结果匹配,应展示名称、类型、工作区并请用户确认。
限制:Catalog Search 只返回项目,不返回工作区,按名称找工作站应使用 GET /v1/workspaces。Dataflow (Gen1) 与 Dataflow (Gen2) 暂不支持。已知工作区或项目后,查询源数据应转用对应工作负载技能(sqldw-cli、spark-cli、eventhouse-cli 或 fabriciq),而非 Catalog Search。不要自创过滤语法,同一 filter 中不要混用 eq 与 ne。另外,新建项目可能因索引延迟暂不出现在搜索结果中,可通过 GET /v1/workspaces/{id}/items 核实。