测试在Oracle 23c中新特性是 AI Vector Search ,它允许直接在数据库中进行基于向量相似性的搜索,从而支持机器学习应用如推荐系统、图像检索等。以下是该特性的详细说明及测试示例:
特性描述:AI Vector Search
-
相似性搜索函数 提供
VECTOR_DISTANCE函数,支持欧氏距离(EUCLIDEAN)和余弦相似度(COSINE)计算。 -
向量索引 创建高效的内存或磁盘索引(如
IVF_INDEX),加速大规模向量搜索。
向量数据类型
新增
VECTOR类型,用于存储高维向量数据(如机器学习模型的嵌入向量)。
测试
步骤1:创建表并插入向量数据
-- 启用向量引擎 ALTER SYSTEM SET vectorset_enable = TRUE; -- 创建包含向量列的表 CREATE TABLE products ( id NUMBER PRIMARY KEY, name VARCHAR2(50), description_embedding VECTOR(384) -- 假设使用384维向量 ); -- 插入测试数据 INSERT INTO products VALUES (1, 'Phone', '[0.12, 0.23, ..., 0.45]'); INSERT INTO products VALUES (2, 'Laptop', '[0.34, 0.67, ..., 0.89]'); INSERT INTO products VALUES (3, 'Tablet', '[0.56, 0.78, ..., 0.91]');
步骤2:创建向量索引
CREATE IVF_INDEX product_vector_idx ON products (description_embedding) WITH ("distance_type" = "EUCLIDEAN");
步骤3:执行相似性搜索
-- 查找与目标向量最相似的3个产品SELECT id, name, VECTOR_DISTANCE(description_embedding, '[0.55, 0.77, ..., 0.90]', EUCLIDEAN) AS distanceFROM productsORDER BY distanceFETCH FIRST 3 ROWS ONLY;
预期结果
ID | NAME | DISTANCE---|--------|---------3 | Tablet | 0.0122 | Laptop | 0.0451 | Phone | 0.210
Oracle 23C AI Vector Search 关键优势主要以下三点:
降低延迟:避免将数据导出到外部AI系统,减少网络开销。
简化架构:直接在数据库中统一管理结构化数据和向量。
高性能:专用索引加速海量向量检索。
