Azure AI Search 多向量和语义排序增强功能

Azure AI Search 最近发布了两个强大的新功能:多向量字段支持和语义排序的评分配置文件集成。这些功能是基于用户反馈开发的,为搜索体验提供了更多控制和更多应用场景。

为什么这些增强功能很重要

随着搜索体验变得越来越复杂,处理复杂的多模态数据并保持精确的相关性变得至关重要。这些新功能直接解决了常见的痛点:

  • 多向量字段支持帮助你更有效地管理详细的、多模态的和分段的内容
  • 语义排序的评分配置文件集成确保整个搜索管道中的一致相关性

多向量字段支持

以前,向量字段(Collection(Edm.Single))或其他窄类型只能存在于索引的顶层。现在,Azure AI Search 允许你在嵌套字段中嵌入多个向量,提供更丰富的上下文和更深入的语义理解。

这对以下场景特别有价值:

  • 将长篇文档分割成可管理和可搜索的块
  • 处理多模态数据集,包括文本和视觉数据的组合
  • 增强复杂数据场景的语义准确性

主要功能

  • 在嵌套复杂字段中索引多个向量
  • 直接查询嵌套向量
  • 智能排序为每个文档选择最相关的向量

索引定义示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "name": "multivector-index",
  "fields": [
    { "name": "id", "type": "Edm.String", "key": true, "searchable": true },
    { "name": "title", "type": "Edm.String", "searchable": true },
    { "name": "descriptionEmbedding", "type": "Collection(Edm.Single)", 
      "dimensions": 3, "searchable": true, "vectorSearchProfile": "hnsw" },
    { "name": "scenes", "type": "Collection(Edm.ComplexType)", "fields": [
        { "name": "embedding", "type": "Collection(Edm.Single)", 
          "dimensions": 3, "searchable": true, "vectorSearchProfile": "hnsw" },
        { "name": "timestamp", "type": "Edm.Int32" },
        { "name": "description", "type": "Edm.String", "searchable": true }
    ]}
  ]
}

查询嵌套向量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "vectorQueries": [{
      "kind": "text",
      "text": "whales swimming",
      "K": 50,
      "fields": "scenes/embedding",
      "perDocumentVectorLimit": 0
  }],
  "select": "title, scenes/timestamp, scenes/description"
}

上面的代码片段假设在向量搜索配置中已经配置了向量化器。

增强的语义排序与评分配置文件

以前,评分配置文件只在初始排序期间影响搜索结果。通过这次增强,评分配置文件也会在语义重新排序后应用,确保你的提升影响最终结果。

为什么使用评分配置文件?

评分配置文件根据业务需求调整排序,支持以下场景:

  • 术语提升:突出重要关键词
  • 新鲜度提升:优先考虑最近的文档
  • 地理提升:根据地理位置调整排序

启用评分配置文件

将评分配置文件与语义排序器集成:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "semantic": {
    "configurations": [
      {
        "name": "mySemanticConfig",
        "rankingOrder": "boostedReRankerScore"
      }
    ]
  }
}

带有提升分数的语义查询示例

1
2
3
4
5
{
  "search": "my query to be boosted",
  "scoringProfile": "myScoringProfile",
  "queryType": "semantic"
}

注意:这也与向量搜索和混合搜索兼容。所有查询类型和场景都会将你的评分配置文件传递到最终重新排序的结果集中。了解更多关于相关性和评分的信息

示例响应

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "value": [
    {
      "@search.score": 0.63,
      "@search.rerankerScore": 2.98,
      "@search.rerankerBoostedScore": 7.68,
      "content": "boosted content 2"
    },
    {
      "@search.score": 1.12,
      "@search.rerankerScore": 3.12,
      "@search.rerankerBoostedScore": 5.61,
      "content": "boosted content 1"
    }
  ]
}

实用指导

在使用这些新功能时,请考虑以下最佳实践:

  • 对于长文档:当你希望获得多样化、独特的顶级文档结果时,使用嵌套向量。设置了 perDocumentVectorLimit 的嵌套向量确保不同文档的多样性
  • 对于多模态场景:在嵌套向量中结合文本和图像嵌入,以获得详细的上下文洞察
  • 尝试评分配置文件:使用术语、新鲜度或地理提升来精确影响你的语义搜索排序

参考信息