You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure AI Search向量索引API批量获取多向量独立相似结果

Azure AI Search多向量独立TopN查询方案

目前Azure AI Search的单个搜索请求无法直接返回多个独立目标向量各自的Top5相似结果——当你在vectorQueries中传入多个向量时,系统会合并所有向量的检索结果,按相似度排序后返回指定top数目的合并结果,而非拆分每个向量对应的独立结果。

如果希望通过单次请求实现需求,可行的替代方案是:

  • 封装后端服务(比如Azure Functions、自定义Web API),由后端接收你的多向量请求后,并行调用Azure AI Search的单向量搜索API,将每个向量的Top5结果汇总后返回给客户端。这样客户端只需要发起一次请求到你的后端,后端处理多向量的并行查询逻辑。

以下是一个简单的Python Flask后端示例,用于封装多向量查询逻辑:

from flask import Flask, request, jsonify
import requests
import json
from concurrent.futures import ThreadPoolExecutor

app = Flask(__name__)

# 替换为你的Azure AI Search配置
SEARCH_SERVICE_NAME = "your-search-service-name"
INDEX_NAME = "your-index-name"
API_VERSION = "2023-11-01"
API_KEY = "your-admin-api-key"
SEARCH_URL = f"https://{SEARCH_SERVICE_NAME}.search.windows.net/indexes/{INDEX_NAME}/docs/search?api-version={API_VERSION}"
REQUEST_HEADERS = {'Content-Type': 'application/json', 'api-key': API_KEY}

def query_single_vector(target_vector):
    """执行单个向量的相似性搜索"""
    payload = {
        "vectorQueries": [{
            "kind": "vector",
            "fields": "embedding",
            "vector": target_vector
        }],
        "top": 5,
    }
    response = requests.post(SEARCH_URL, headers=REQUEST_HEADERS, data=json.dumps(payload))
    return response.json()

@app.route('/multi-vector-search', methods=['POST'])
def multi_vector_search():
    """接收多向量请求,返回每个向量的Top5结果"""
    request_data = request.get_json()
    target_vectors = request_data.get('target_vectors', [])
    
    # 并行处理多个向量查询
    with ThreadPoolExecutor(max_workers=len(target_vectors)) as executor:
        results = list(executor.map(query_single_vector, target_vectors))
    
    return jsonify(results)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

除此之外,当前Azure AI Search的原生搜索API没有支持单次请求返回多向量独立结果的官方能力,你提到的客户端并行提交单向量查询是目前最直接的原生方案,若要简化客户端逻辑,建议通过后端封装实现。

内容的提问来源于stack exchange,提问作者IronsUp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:10:06