news 2026/4/17 4:18:06

向量数据库常用SQL语句

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
向量数据库常用SQL语句

向量数据库常用SQL语句

创建包含向量字段的表

CREATETABLEproducts(idSERIALPRIMARYKEY,nameVARCHAR(100),descriptionTEXT,embedding VECTOR(1536)-- 假设使用1536维向量);

插入向量数据

INSERTINTOproducts(name,description,embedding)VALUES('智能手机','高端旗舰手机','[0.1, 0.2, ..., 0.5]');

向量相似度查询(以pgvector为例)

SELECTid,name,1-(embedding<=>'[0.3, 0.1, ..., 0.4]')ASsimilarityFROMproductsORDERBYembedding<=>'[0.3, 0.1, ..., 0.4]'LIMIT10;

创建向量索引

CREATEINDEXONproductsUSINGivfflat(embedding vector_l2_ops)WITH(lists=100);-- 针对IVFFlat索引

典型应用案例

案例1:商品推荐系统

基于用户浏览历史的向量相似度推荐

# 假设已获取用户浏览记录的向量表示user_vector=[0.2,0.15,...,0.3]# 使用pgvector查询相似商品query=""" SELECT id, name, 1 - (embedding <=> %s) AS similarity FROM products WHERE category = 'electronics' ORDER BY embedding <=> %s LIMIT 5 """cursor.execute(query,(user_vector,user_vector))

案例2:语义搜索实现

文本语义相似度搜索

fromsentence_transformersimportSentenceTransformer model=SentenceTransformer('all-MiniLM-L6-v2')# 将搜索查询转换为向量query_text="续航持久的蓝牙耳机"query_vector=model.encode(query_text).tolist()# 向量数据库查询similar_products=collection.query(query_embeddings=[query_vector],n_results=3,include=["metadata","distances"])

代码实现示例

使用FAISS实现(Python)

importfaissimportnumpyasnp# 创建索引dimension=768index=faiss.IndexFlatIP(dimension)# 添加向量数据vectors=np.random.rand(1000,dimension).astype('float32')index.add(vectors)# 相似度搜索query_vector=np.random.rand(1,dimension).astype('float32')D,I=index.search(query_vector,k=5)# 返回前5个最相似结果

使用Milvus向量数据库

frompymilvusimportconnections,Collection# 连接数据库connections.connect("default",host="localhost",port="19530")# 获取集合collection=Collection("products")# 向量搜索search_params={"metric_type":"L2","params":{"nprobe":10}}results=collection.search(data=[query_vector],anns_field="embedding",param=search_params,limit=5,output_fields=["name"])

性能优化技巧

索引参数调优(以IVF_FLAT为例)

-- 调整nlist参数平衡查询精度和速度CREATEINDEXONproductsUSINGivfflat(embedding vector_l2_ops)WITH(lists=500);

混合查询(结合向量和标量过滤)

SELECTid,nameFROMproductsWHEREprice<1000ANDembedding<=>'[0.1, ..., 0.2]'<0.3ORDERBYembedding<=>'[0.1, ..., 0.2]'LIMIT10;

向量量化技术应用(如PQ编码)

# 使用Faiss的PQ压缩quantizer=faiss.IndexFlatL2(dimension)index=faiss.IndexIVFPQ(quantizer,dimension,100,16,8)# 100个簇,16个子向量,8bits
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 0:33:15

政务热线智能化改造案例:Kotaemon的实际成效

政务热线智能化改造案例&#xff1a;Kotaemon的实际成效 在城市治理日益数字化的今天&#xff0c;政务热线作为政府与公众之间最直接的沟通窗口&#xff0c;正承受着前所未有的压力。某市12345热线平台数据显示&#xff0c;日均来电量已突破两万通&#xff0c;其中近七成是重复…

作者头像 李华
网站建设 2026/4/14 13:22:47

KotaemonLeetCode刷题伴侣:思路提示与优化建议

KotaemonLeetCode刷题伴侣&#xff1a;思路提示与优化建议 在算法学习的征途上&#xff0c;几乎每个开发者都曾经历过这样的时刻&#xff1a;面对一道中等难度的LeetCode题目&#xff0c;脑海中闪过几个模糊的想法&#xff0c;却始终无法串联成完整的解法&#xff1b;翻看题解又…

作者头像 李华
网站建设 2026/4/16 9:35:11

【技术人必备】LED屏采购避坑指南:5大核心要点,省钱又稳避技术

作为深耕LED显示领域13年的从业者&#xff0c;见过太多企业采购LED屏时因信息差踩坑&#xff1a;预算超支40%、显示效果与场景不匹配、售后扯皮、关键场景突发故障… 结合上百位客户的真实案例和行业技术标准&#xff0c;整理了这份实操性极强的采购指南&#xff0c;从报价、参…

作者头像 李华
网站建设 2026/4/15 18:16:39

BXMya BENTLY 3500/94 145988-01 机架接口模块

BENTLY 3500/94 145988-01 是本特利&#xff08;BENTLY NEVADA&#xff09;3500 系列工业级机架接口模块&#xff0c;专为旋转机械状态监测与保护系统设计&#xff0c;核心承担 3500 监测框架内各功能模块&#xff08;振动、位移、温度等&#xff09;的数据汇总、协议转换、外部…

作者头像 李华
网站建设 2026/4/14 6:41:34

AI大模型时代,谈谈大模型方向的择业建议!

在随着DeepSeek、Qwen、GLM等基座模型的崛起&#xff0c;人才待遇飙升、招聘逻辑重写、AGI信仰回归&#xff0c;基座研发成为薪酬与成长的绝对洼地&#xff0c;而错过窗口的传统算法岗正被时代加速淘汰。本文总结25年的关键变化&#xff0c;并给出校招与转岗的核心建议&#xf…

作者头像 李华