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

如何通过LangChain从Azure AI Search索引分块中获取文档ID

解决LangChain AzureSearch无法获取文档ID的问题
  • 问题根源:LangChain的AzureSearch类默认不会将Azure AI Search索引中的文档ID映射到返回的Document对象的id属性,需要手动配置字段映射。

  • 解决方案步骤:

    1. 初始化AzureSearch时指定ID字段
      在创建AzureSearch实例时,添加id_field参数,值为Azure AI Search索引中存储自动生成ID的字段名(默认自动生成的ID字段名为id)。代码示例:
      from langchain_community.vectorstores import AzureSearch
      from langchain_openai import OpenAIEmbeddings
      
      embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")
      
      vector_store = AzureSearch(
          azure_search_endpoint="你的Azure Search端点",
          azure_search_key="你的Azure Search密钥",
          index_name="你的索引名称",
          embedding_function=embeddings.embed_query,
          id_field="id"  # 关键配置:指定ID字段
      )
      
    2. 调用搜索方法获取带ID的文档
      之后调用search或similarity_search等方法,返回的Document对象的id属性就会对应Azure AI Search中的文档ID:
      results = vector_store.search("你的查询内容", k=5)
      for doc in results:
          print(f"文档ID: {doc.id}, 内容摘要: {doc.page_content[:100]}...")
      
  • 注意:如果你的索引使用了自定义的ID字段名,只需将id_field的值替换为对应的字段名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:22:07