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

使用Aws Bedrock+LangChain+OpenSearch时KNN向量类型报错排查

问题分析与解决

报错原因

LangChain的OpenSearchVectorStore默认会使用名为vector_field的字段进行KNN检索,但你的OpenSearch索引中定义的向量字段是my_vector1,两者不匹配,导致系统找不到vector_field这个knn_vector类型的字段,从而抛出该错误。你的索引配置本身没有问题,问题出在LangChain侧的参数配置。

解决方法

有两种可行的解决方式:

方式一:修改OpenSearch索引配置

将索引映射中的向量字段名改为vector_field,保持和LangChain默认值一致,修改后的索引配置如下:

{
  "settings": {
    "index": {
      "knn": true,
      "knn.algo_param.ef_search": 100
    }
  },
  "mappings": {
    "properties": {
      "vector_field": {
        "type": "knn_vector",
        "dimension": 1536,
        "method": {
          "name": "hnsw",
          "space_type": "l2",
          "engine": "faiss",
          "parameters": {
            "ef_construction": 128,
            "m": 24
          }
        }
      }
    }
  }
}

方式二:在LangChain中指定向量字段名

初始化OpenSearchVectorStore时,显式传入vector_field参数,指定为你索引中的my_vector1字段,示例代码如下:

from langchain.vectorstores import OpenSearchVectorStore

# 假设其他参数已正确配置
vector_store = OpenSearchVectorStore(
    index_name="your_index_name",
    embedding=your_embedding_model,
    vector_field="my_vector1",  # 关键:指定自定义的向量字段名
    # 其他必要参数...
)

# 后续将vector_store作为检索器传入ConversationChain

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:11