Azure 搜索索引的 OData API 不返回元数据

OData API for a Azure search index not returning metadata

我们的 Azure 搜索索引的 OData API 有问题,它不是 returning 元数据。我们能够执行基于 OData 的查询,但无法访问元数据

我们的预期是 Odata 终点

https://search-service-name.search.windows.net/indexes/index-name?api-version=2019-05-06&api-key=XXXXXXXXXXX&odata.metadata=full

应该return元数据。 我们尝试过的其他终点

https://search-service-name.search.windows.net/indexes('index-name')/$metadata?api-version=2019-05-06&api-key=XXXXXXXX&odata.metadata=full

如果我们使用设置的 api-key 进行查询,我们会得到错误
{ "error":{ "code": "", "message": "Authorization failed." } }

使用管理员密钥作为 api 密钥,错误 returned 是 { "Message": "The given API key is not permitted in the URI query string." }

有没有其他人能够使用 Azure 搜索索引获得完整的 OData API?

谢谢

odata.metadata=fullapi-key 都需要作为 HTTP header 传递,而不是 query-string 参数。 api-key 是它自己的 header,而 odata.metadata=full 是一个参数,应该是 Accept header 的一部分,像这样:application/json;odata.metadata=full.

也就是说,除非您尝试将 Azure 搜索与无法更改代码的 OData-enabled 客户端一起使用,否则您不需要完整的 OData 元数据。您最多需要 odata.metadata=minimal 为使用继承的 REST API 部分包含类型注释(例如,在配置分析器、技能或索引器的 change/deletion 检测策略时)。