使用排名显示实体搜索结果

警告

2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅必应搜索 API 文档。 关于为必应搜索创建新的 Azure 资源的说明,请参阅通过 Azure 市场创建必应搜索资源

每个实体搜索响应包括一个 RankingResponse 答案,它指定必应实体搜索 API 返回的搜索结果的显示方式。 排名响应会将结果分组到两极、主线和边栏内容。 两极结果是最重要或突出的结果,应首先显示。 如果不以传统主线和边栏格式显示剩余结果,必须以比边栏内容更高的可见度提供主线内容。

在每个组中,数组标识了内容必须显示的顺序。 每个项提供两种方法来标识答案中的结果。

字段 说明
answerTyperesultIndex answerType 标识答案(实体或位置),resultIndex 标识该答案中的结果(例如某个实体)。 索引从 0 开始。
value value 包含一个 ID,它与答案或答案中结果的 ID 匹配。 答案或结果包含 ID,而不是同时包含。

使用 answerTyperesultIndex 的过程分为两步。 首先,使用 answerType 来标识包含要显示的结果的答案。 然后,使用 resultIndex 对答案的结果进行索引,以获取要显示的结果。 (answerType 值是 SearchResponse 对象中字段的名称。)如果不应一起显示答案的所有结果,则排名响应项不应包含 resultIndex 字段。

使用 ID 必须使排名 ID 与答案或其结果之一的 ID 匹配。 如果答案对象包含 id 字段,则同时显示答案的所有结果。 例如,如果 Entities 对象包含 id 字段,则同时显示所有实体项目。 如果 Entities 对象不包含 id 字段,则每个实体包含 id 字段,排名响应将实体与位置结果混合。

排名响应示例

下面展示了一个示例 RankingResponse

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "Jimi Hendrix"
  },
  "entities": { ... },
  "rankingResponse": {
    "sidebar": {
      "items": [
        {
          "answerType": "Entities",
          "resultIndex": 0,
          "value": {
            "id": "https://www.bingapis.com/api/v7/#Entities.0"
          }
        },
        {
          "answerType": "Entities",
          "resultIndex": 1,
          "value": {
            "id": "https://www.bingapis.com/api/v7/#Entities.1"
          }
        }
      ]
    }
  }
}

根据此排名响应,侧栏应显示与 Jimi Hendrix 相关的两个实体结果。

后续步骤