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

疯狂SQL转换系列- SQL for Tencent Cloud VectorDB

        为了尽量保证使用者通过统一的SQL标准访问各类型数据库,我们这里开启了“疯狂SQL转换系列”。转换的语法效果不一定是最好的,更多是为用户提供一个统一的数据库交互体验。转换数据库目标的确认更多是内生的。基于我们对业务发展的需要。该向量库SQL转换的源码参见https://github.com/colorknight/moql-transx。

        对腾讯云向量数据库的支持,主要是为了给LLM的RAG(检索增强生成)提供更多向量库选择。使用者可通过该接口输入SQL语句,获得结构化的数据结果,如下列代码示例:

// 构建TcVector客户端
ConnectParam connectParam = ConnectParam.newBuilder().withUrl("向量数据库url").withUsername("root").withKey("访问key").withTimeout(30).build();
vectorDBClient = new VectorDBClient(connectParam,
​
// 使用TcVector客户端创建TcVector查询器
TcVectorQuerier querier = new TcVectorQuerier(vectorDBClient);
/* 查询语句含义:从book集合中筛选数据,并返回全部列。筛选条件为,向量字段值为'[[0.3123, 0.43, 0.213], [0.5123, 0.63, 0.413]]'。取前2条命中记录。*/
String sql = "select * from datayoo.book where withVectors('[[0.3123, 0.43, 0.213], [0.5123, 0.63, 0.413]]') limit 2";
// 使用查询器执行sql语句,并返回查询结果
RecordSet recordSet = querier.query(sql);

        TcVector提供的检索接口与SQL语法有一定差异,其SearchParam提供的部分参数可以直接映射为SQL语法的等同语义子句。如:expr参数,其语义与SQL中Where子句语义基本兼容;其OutFields参数为输出结果集的列结构,与SQL语句的Select子句语义相同。但其也有其特殊的查询参数接口,如:针对向量字段匹配的参数接口withVectors等。由于这些概念在SQL中没有对应语义的子句,为不增加语法概念,MOQL Transx将这类接口都以Where子句中的函数形式进行表达。这种表达方式可能不是最佳表达方式,如果有人有更好的建议,可以到项目中给我们留言。

        下表将给出TcVector查询接口的参数与SQL语法的对照关系:

TcVector查询参数接口SQL语法
collection(table)from table
withOutputFields(outFields)select outFields
withDocumentIdswhere id = ?
withFilterwhere expr
withParamswithParams
withVectorswithVectors
withLimit()limit offset, k

模块的maven坐标

<dependency><groupId>org.datayoo.moql</groupId><artifactId>moql-querier-tcvector</artifactId><version>1.0.0</version>
</dependency>
http://www.lryc.cn/news/261343.html

相关文章:

  • Excel中的INDIRECT函数用法
  • Spring-temp
  • 【C++干货铺】会搜索的二叉树(BSTree)
  • 【Spring AOP】 动态代理
  • NAT——网络地址转换
  • Lambda 表达式的常见用法
  • 成本管理常用的ChatGPT通用提示词模板
  • 如何在PHP中处理日期和时间?
  • NO-IOT翻频,什么是翻频,电信为什么翻频
  • 云原生之深入解析OOM和CPU节流
  • 数据结构与算法之递归: LeetCode 93. 复原 IP 地址 (Typescript版)
  • json模块与jsonpath详解
  • ubuntu20.04在noetic下编译orbslam2
  • 64. 最小路径和
  • 惰性加载函数(js的问题)
  • jmeter,读取CSV文件数据的循环控制
  • 移植LVGL到像素屏,从此玩转像素屏0门槛
  • stateflow 之图函数、simulink函数和matlab函数使用及案例分析
  • C# 加载本地文件设置应用程序图标
  • 苹果计划将全球1/4的IPhone产能转移至印度
  • el-date-picker 选择一个或多个日期
  • 5个创建在线帮助文档的好方法!
  • 听GPT 讲Rust源代码--src/tools(14)
  • arcgis api for js 中使用API的代理页面(跨越配置)
  • Unity_FairyGUI发布导入Unity编辑器资源报错
  • 1.5【应用开发】缓冲区(二)
  • RTMP流设置超时时间失败
  • 如何一步步让MySQL支撑亿级流量
  • MFC CLXHHandleEngine动态库-自定义设置对话框使用
  • Python生成器(Generator)(继续更新...)