当前位置: 首页 > news >正文

向量数据库常用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
http://www.zskr.cn/news/121073.html

相关文章:

  • 47、深入了解 NNTP 协议及其应用
  • 我发现动态病例生成补足医学教育短板,三甲医院培训效率翻倍
  • 我发现扩散模型生成合成基因数据,罕见病跨境早筛灵敏度翻倍
  • 10、TCP/IP 网络配置全攻略
  • 若依报错Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ property manually
  • BXMya BENTLY 3500/94 145988-01 机架接口模块
  • 谁在捧杀豆包手机?
  • Kotaemon播客脚本生成:节目大纲与台词
  • 单片机基础知识(八)8080时序
  • web城乡居民基本医疗信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 基于Kotaemon的政策法规智能查询系统
  • 文心大模型5.0震撼来袭:AI产品经理必读的技术实践与设计攻略!
  • 昆明别墅装修公司推荐:避坑Top3,住建局数据选这3家立省20万!
  • 昆明装修公司推荐:实地探访12盘揭晓榜首,95%设计落地+终身质控
  • 《逆行人生》如何用个人专利权,重塑资本世界
  • Kotaemon更新日志:最新v1.2版本带来哪些关键升级?
  • 扩大内需与城乡规划关系
  • 59、数据访问与绑定技术全面解析
  • 2、深入解析Flex与Bison:从原理到应用
  • ImHex 十六进制编辑器 v1.38.0 多语便携版
  • 16、macOS Mojave实用技巧与优化指南
  • 红外热像仪光学性能综合测试系统在多领域中的作用
  • 6、Bison解析器与抽象语法树计算器的实现与优化
  • 是个公司都在用AI Agent,但大家真的用明白了吗??| MEET2026圆桌论坛
  • 基于Kotaemon的多语言问答系统构建方法
  • 7、macOS Stacks:高效管理与便捷操作指南
  • 灾害预警信息快速语音化:EmotiVoice响应
  • 算力的“围墙花园”与闭环幻觉:企业 Agent 的“烂尾”真相
  • 告别答案不可追溯!Kotaemon确保RAG结果精准可控
  • Kotaemon审计日志功能帮助企业通过ISO认证