Skip to content

Azure AI Search Vector Store 节点#

Azure AI Search(以前称为 Azure Cognitive Search)是一个具有向量搜索功能的云搜索服务,用于 RAG 和语义搜索应用程序。使用此节点可以存储、检索和查询向量嵌入及其内容和 metadata。

在此页面上,您将找到 Azure AI Search Vector Store 节点的节点参数以及更多资源的链接。

凭据

您可以在这里找到此节点的身份验证信息。

子节点中的参数解析

子节点在使用表达式处理多个项目时的行为与其他节点不同。

大多数节点,包括根节点,接受任意数量的项目作为输入,处理这些项目,并输出结果。您可以使用表达式引用输入项目,节点会依次为每个项目解析表达式。例如,给定五个 name 值的输入,表达式 {{ $json.name }} 会依次解析为每个名称。

在子节点中,表达式始终解析为第一个项目。例如,给定五个 name 值的输入,表达式 {{ $json.name }} 始终解析为第一个名称。

Prerequisites 先决条件#

在使用此节点之前,您需要:

  1. 一个 Azure 订阅
  2. 一个 Azure AI Search 服务
  3. 配置 API 密钥身份验证(写操作需要管理密钥,只读操作需要查询密钥)

请参阅凭据文档以获取设置说明。

Index configuration 索引配置#

如果索引不存在,该节点会自动创建索引。自动创建时,节点会配置:

  • 基于您的嵌入模型的适当维度的向量字段
  • 使用余弦度量的高效相似性搜索的 HNSW 算法
  • 用于过滤和检索的内容和 metadata 字段

您还可以在 Azure Portal 中预先创建索引以进行自定义配置。示例架构:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
  "name": "n8n-vectorstore",
  "fields": [
    {
      "name": "id",
      "type": "Edm.String",
      "key": true,
      "filterable": true
    },
    {
      "name": "content",
      "type": "Edm.String",
      "searchable": true
    },
    {
      "name": "content_vector",
      "type": "Collection(Edm.Single)",
      "searchable": true,
      "vectorSearchDimensions": 1536,
      "vectorSearchProfileName": "n8n-vector-profile"
    },
    {
      "name": "metadata",
      "type": "Edm.String",
      "filterable": true
    }
  ],
  "vectorSearch": {
    "profiles": [
      {
        "name": "n8n-vector-profile",
        "algorithm": "n8n-vector-algorithm"
      }
    ],
    "algorithms": [
      {
        "name": "n8n-vector-algorithm",
        "kind": "hnsw",
        "hnswParameters": {
          "metric": "cosine",
          "m": 4,
          "efConstruction": 400,
          "efSearch": 500
        }
      }
    ]
  }
}

向量维度

vectorSearchDimensions 值必须与您的嵌入模型输出匹配。

Node usage patterns 节点使用模式#

Use as a regular node to insert and retrieve documents 用作常规节点以插入和检索文档#

在工作流中直接使用该节点以插入或检索文档,无需代理。请参阅此模板以了解示例模式(使用 Supabase,但模式相同)。

Connect directly to an AI agent as a tool 直接连接到 AI 代理作为工具#

连接到 AI 代理的工具连接器,以将向量存储用作可搜索的知识库:

AI agent (tools connector) → Azure AI Search Vector Store node

Use a retriever to fetch documents 使用检索器获取文档#

Vector Store RetrieverQuestion and Answer Chain 一起使用以进行检索增强生成:

Question and Answer Chain (Retriever) → Vector Store Retriever (Vector Store) → Azure AI Search Vector Store

请参阅此示例工作流

Use the Vector Store Question Answer Tool 使用 Vector Store Question Answer Tool#

使用 Vector Store Question Answer Tool 来总结和回答问题:

AI agent (tools) → Vector Store Question Answer Tool (Vector Store) → Azure AI Search Vector Store

请参阅此示例

Node parameters 节点参数#

操作模式#

此向量存储节点有五种模式:获取多个插入文档检索文档(作为链/工具的向量存储)检索文档(作为 AI 代理的工具)更新文档。您选择的模式决定了您可以使用节点执行的操作以及可用的输入和输出。

获取多个#

在此模式下,您可以通过提供提示从向量数据库中检索多个文档。提示将被嵌入并用于相似性搜索。节点将返回与提示最相似的文档及其相似性分数。如果您想检索相似文档列表并将它们作为额外上下文传递给代理,这非常有用。

插入文档#

使用插入文档模式将新文档插入到您的向量数据库中。

检索文档(作为链/工具的向量存储)#

使用检索文档(作为链/工具的向量存储)模式与向量存储检索器一起从向量数据库检索文档,并将它们提供给连接到链的检索器。在此模式下,您必须将节点连接到检索器节点或根节点。

检索文档(作为 AI 代理的工具)#

使用检索文档(作为 AI 代理的工具)模式在回答查询时将向量存储用作工具资源。在制定响应时,当向量存储名称和描述与问题详细信息匹配时,代理会使用向量存储。

更新文档#

使用更新文档模式通过 ID 更新向量数据库中的文档。在 ID 中填入要更新的嵌入条目的 ID。

Rerank Results 重新排名结果#

重新排序结果#

启用重新排序。如果启用此选项,您必须将重新排序节点连接到向量存储。然后该节点将为查询重新排序结果。您可以在 获取多个检索文档(作为链/工具的向量存储)检索文档(作为 AI 代理的工具)模式下使用此选项。

Azure AI Search 语义重新排名

Azure AI Search 具有内置的语义重新排名功能,当您使用 Semantic Hybrid 语义混合查询模式和语义配置时可用。要使用它:

  1. 在 Options 选项中将 Query Mode 查询模式设置为 Semantic Hybrid 语义混合
  2. Semantic Configuration 语义配置设置为您的配置名称(如果未指定,则默认为 semantic-search-config

内置语义重新排名器使用机器学习模型来提高相关性。您可以在语义重新排名后链接额外的重新排名节点以进行进一步优化。

只有当您的索引定义了语义配置时,语义重新排名才可用。

Get Many parameters#

  • Endpoint 端点:您的 Azure AI Search 端点(格式:https://your-service.search.windows.net
  • Index Name 索引名称:要查询的索引
  • Limit 限制:返回的最大文档数(默认:4)

Insert Documents parameters#

  • Endpoint 端点:您的 Azure AI Search 端点
  • Index Name 索引名称:要使用的索引(如果不存在则自动创建)
  • Batch Size 批量大小:每批上传到 Azure AI Search 的文档数。根据文档大小和您的服务层级限制进行调整。这仅控制上传批处理——嵌入生成批处理在嵌入节点中配置。

Update Documents parameters#

  • Endpoint 端点:您的 Azure AI Search 端点
  • Index Name 索引名称:要更新的索引

Retrieve Documents parameters (As Vector Store for Chain/Tool)#

  • Endpoint 端点:您的 Azure AI Search 端点
  • Index Name 索引名称:要查询的索引

Retrieve Documents (As Tool for AI Agent) parameters#

  • Name 名称:向 LLM 显示的工具名称
  • Description 描述:向 LLM 解释此工具的作用。要具体,以帮助 LLM 选择何时使用此工具。
  • Endpoint 端点:您的 Azure AI Search 端点
  • Index Name 索引名称:要查询的索引
  • Limit 限制:要检索的最大结果数(例如,10 表示十个最佳匹配)

Node options 节点选项#

Options 选项#

  • Filter 过滤器OData 过滤器表达式,用于按文档字段或 metadata 过滤结果。请参阅下面的过滤器示例。
  • Query Mode 查询模式:要使用的搜索策略:
  • Vector 向量:仅使用嵌入的相似性搜索
  • Keyword 关键字:使用 BM25 排名的全文搜索
  • Hybrid 混合(默认):使用 Reciprocal Rank Fusion (RRF) 结合向量和关键字搜索
  • Semantic Hybrid 语义混合:使用语义重新排名的混合搜索以提高相关性
  • Semantic Configuration 语义配置:用于语义排名的语义配置名称。如果未指定,则默认为 semantic-search-config。仅当您预先创建具有自定义语义配置名称的索引时才需要。

查询模式选择

使用 Vector 向量进行语义相似性搜索,使用 Keyword 关键字进行精确术语匹配,使用 Hybrid 混合进行平衡结果,或在索引中配置了语义搜索时使用 Semantic Hybrid 语义混合以获得最大相关性。

OData filter examples OData 过滤器示例#

Azure AI Search 使用 OData 语法进行过滤。metadata 字段使用 metadata/fieldName 格式访问。

按文档 ID 过滤:

1
id eq '3da6491a-f930-4a4e-9471-c05dcd450ba0'

按 metadata 字段过滤:

1
metadata/source eq 'user-guide'

复杂 AND 过滤器:

1
metadata/category eq 'technology' and metadata/author eq 'John'

复杂 OR 过滤器:

1
metadata/source eq 'user-guide' or metadata/rating ge 4

数值比较:

1
metadata/rating ge 4 and metadata/rating lt 10

使用 NOT 的字符串匹配:

1
metadata/category eq 'technology' and metadata/title ne 'Deprecated'

支持的 OData 运算符: - 比较:eqnegtgeltle - 逻辑:andornot - 字符串函数:startswith()endswith()contains() - 集合函数:any()all()

过滤器格式

过滤器适用于所有查询模式(Vector、Keyword、Hybrid、Semantic Hybrid)和所有操作模式(retrieve、load、retrieve-as-tool)。

Hybrid search with RRF 使用 RRF 的混合搜索#

Azure AI Search 的混合搜索使用 Reciprocal Rank Fusion 来合并向量和关键字结果,提供比单独使用任一方法更好的准确性。

Semantic ranking 语义排名#

Semantic Hybrid 模式应用机器学习模型根据对查询的语义理解来重新排名结果。这需要在您的索引中配置语义配置。

OData filters OData 过滤器#

在向量搜索执行之前,使用 OData 语法按文档字段或 metadata 进行过滤。当您需要来自特定来源或具有某些属性的结果时,这可以提高性能和精度。

HNSW algorithm HNSW 算法#

Azure AI Search 使用 Hierarchical Navigable Small World (HNSW) 图进行近似最近邻搜索,在规模上提供快速检索,并具有可配置的准确性/速度权衡。

Troubleshooting 故障排除#

Index issues 索引问题#

Index not found 索引未找到:验证索引名称是否正确(区分大小写)并存在于您的 Azure AI Search 服务中。如果使用自动创建,请检查索引是否已成功创建。

Vector dimension mismatch 向量维度不匹配:确保您的嵌入模型维度与索引向量字段维度匹配。检查索引架构以确认 vectorSearchDimensions 设置。

Document insert failures 文档插入失败: - 验证写入权限(需要管理 API 密钥) - 检查文档字段是否与您的索引架构匹配 - 确保在文档中提供了必填字段 - 如果在大型文档集上遇到超时,请查看批量大小设置

Filter issues 过滤器问题#

Filter not working 过滤器不起作用: - 验证 OData 语法是否正确 - 确保 metadata 字段使用 metadata/ 前缀:metadata/source eq 'value' - 检查过滤的字段是否在您的索引架构中标记为 filterable - 在复杂表达式之前先测试简单过滤器(id eq 'value'

Invalid OData syntax 无效的 OData 语法: - 对字符串值使用单引号:metadata/source eq 'value' - 使用正确的运算符:eqnegtgeltleandornot - 请参阅 OData 过滤器文档了解语法详细信息

Connection issues 连接问题#

Unable to connect 无法连接: - 验证端点 URL 格式:https://your-service.search.windows.net - 确认您的 Azure AI Search 服务正在运行且可访问 - 检查网络安全组、防火墙规则和私有端点配置 - 对于 Azure 托管的 n8n,如果使用私有端点,请验证虚拟网络对等互连或服务端点配置

Authentication issues 身份验证问题#

有关身份验证故障排除(包括 API 密钥错误),请参阅凭据文档故障排除部分

Templates and examples 模板和示例#

Template widget placeholder.

查看 n8n 的高级 AI文档。

自托管 AI 入门套件#

刚开始使用 AI 和自托管 n8n?尝试 n8n 的自托管 AI 入门套件,使用 Ollama、Qdrant 和 PostgreSQL 开始概念验证或演示游乐场。