测试在Oracle 23c中新特性是 AI Vector Search ,它允许直接在数据库中进行基于向量相似性的搜索,从而支持机器学习应用如推荐系统、图像检索等。以下是该特性的详细说明及测试示例:
向量数据类型
新增
VECTOR类型,用于存储高维向量数据(如机器学习模型的嵌入向量)。
相似性搜索函数
提供
VECTOR_DISTANCE函数,支持欧氏距离(
EUCLIDEAN)和余弦相似度(
COSINE)计算。
向量索引
创建高效的内存或磁盘索引(如
IVF_INDEX),加速大规模向量搜索。
-- 启用向量引擎
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]');
CREATE IVF_INDEX product_vector_idx
ON products (description_embedding)
WITH ("distance_type" = "EUCLIDEAN");
-- 查找与目标向量最相似的3个产品
SELECT id, name,
VECTOR_DISTANCE(description_embedding,
'[0.55, 0.77, ..., 0.90]',
EUCLIDEAN) AS distance
FROM products
ORDER BY distance
FETCH FIRST 3 ROWS ONLY;
ID | NAME | DISTANCE
---|--------|---------
3 | Tablet | 0.012
2 | Laptop | 0.045
1 | Phone | 0.210
降低延迟:避免将数据导出到外部AI系统,减少网络开销。
简化架构:直接在数据库中统一管理结构化数据和向量。
高性能:专用索引加速海量向量检索。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31547506/viewspace-3073854/ ,如需转载,请注明出处,否则将追究法律责任。