Oracle AI Database 支持通过 语义(意义)而非关键词查询数据的 AI 工作负载。它将 非结构化内容的语义搜索 与 业务数据的关联过滤 结合在一个系统中,因此您可以在不引入单独的向量数据库并将数据分散到多个平台的情况下,构建检索工作流(如 RAG)。
本指南演示如何使用 OracleVS(用于 Oracle AI Vector Search 的 LangChain 向量存储集成)来:
- 将文档和嵌入导入 Oracle
- 运行相似性搜索
- 创建 HNSW 和 IVF 索引
- 应用元数据过滤器以实现高级检索
- 在 Oracle AI Database 26ai 中启用混合搜索(关键词 + 语义)
- 使用 Oracle Text 运行全文搜索
集成详情
安装 Oracle 客户端绑定和 LangChain Oracle 辅助工具:
为将拥有向量表的 Oracle 用户设置连接凭证:
创建向量存储
以下示例假设您已经创建了一个包含向量和元数据列的表,并使用 OracleEmbeddings 生成了嵌入。
:::js
:::
如果您的应用程序已经管理了 Oracle 数据库连接池,请直接将连接池传递给 OracleVS。存储会根据需要获取和释放连接。
:::js
:::
过滤搜索结果
您可以将丰富的元数据过滤器作为 similaritySearch、similaritySearchWithScore 或 similaritySearchVectorWithScore 的第三个参数传递。过滤器在 Oracle VS 为每个文档维护的 JSON metadata 列上运行。
支持的比较运算符包括 $eq(默认)、$ne、$lt、$lte、$gt、$gte、$in、$nin、$between 和 $exists。使用 $and 和 $or 组合子句以构建更表达式的谓词。
:::js
:::
也支持嵌套逻辑子句。例如:
使用向量索引加速搜索
Oracle Database 可以通过在 embedding 列上创建向量索引来加速相似性查询。@oracle/langchain-oracledb 辅助工具提供了一个 createIndex 工具,可以配置 HNSW(默认)或 IVF 索引。
HNSW 索引(默认)
当您需要一个平衡召回率和延迟的基于图的索引时,请使用 HNSW。省略 idxType 以使用默认配置或覆盖参数,例如 neighbors、efConstruction 和 accuracy。
IVF 索引
通过传递 idxType: "IVF" 和要创建的邻居分区数量来切换到 IVF。IVF 将向量分区到集群中,当您需要粗粒度量化且内存使用可预测时,它很有用。
在加载数据后(或在 initialize 后)运行 createIndex 一次,并重复使用索引进行后续搜索。要重建或切换策略,请通过标准 SQL(DROP INDEX ...)删除现有索引,并使用新参数重新运行 createIndex。
下一步
官方原文:src/oss/javascript/integrations/vectorstores/oracleai.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026