rqlite java sdk 对于sqlite-vec 支持的bug

news/2025/10/13 8:01:12/文章来源:https://www.cnblogs.com/rongfengliang/p/19006663

rqlite java sdk 对于sqlite-vec 支持的bug

sqlite-vec 查询返回的distance 是real 类型的,但是rqlite java sdk 对于类型了check,如果没在代码里边的会直接提示异常

解决方法

实际上real 与包含精度的float 类型是类似的,解决方法就比较简单了,配置兼容就可以了

参考示例代码

具体需改的地方比较多,可以参考完整pr 代码

public static int getJdbcType(String rqliteType) {if (rqliteType == null) {throw new IllegalArgumentException("type cannot be null");}var parts = rqliteType.trim().toUpperCase().split("[(),]");var rqType = parts[0];switch (rqType) {case RQ_INTEGER:    return INTEGER;case RQ_NUMERIC:    return NUMERIC;case RQ_BOOLEAN:    return BOOLEAN;case RQ_TINYINT:    return TINYINT;case RQ_SMALLINT:   return SMALLINT;case RQ_BIGINT:     return BIGINT;case RQ_FLOAT:      return FLOAT;case RQ_DOUBLE:     return DOUBLE;case RQ_TEXT:case RQ_VARCHAR:    return VARCHAR;case RQ_DATE:       return DATE;case RQ_TIME:       return TIME;case RQ_TIMESTAMP:  return TIMESTAMP;case RQ_DATALINK:   return DATALINK;case RQ_CLOB:       return CLOB;case RQ_NCLOB:      return NCLOB;case RQ_NVARCHAR:   return NVARCHAR;case RQ_BLOB:       return BLOB;case RQ_NULL:       return NULL;case RQ_REAL:       return FLOAT; // RQLite uses REAL as an alias for FLOATdefault: return -1;}}

说明

以上是一个示例,参考jdbc 操作代码

package com.dalong;
import java.sql.*;
import java.util.Arrays;
import java.util.UUID;public class App {public static void main(String[] args) {var url = "jdbc:sqlite:http://localhost:8080";var vector = new int[] {1,2,4};System.out.println("vector to " + Arrays.toString(vector));try (Connection conn = DriverManager.getConnection(url)) {var stmt = conn.createStatement();var ps = conn.prepareStatement("insert into dalongrong_vec (id, vector, user_id, type, version) values (?,?,?,?,?)");ps.setString(1, UUID.randomUUID().toString());ps.setString(2, Arrays.toString(vector));ps.setString(3, "user123");ps.setString(4, "text");ps.setString(5, "v1");int result = ps.executeUpdate();System.out.println("Insert result: " + result);var psv2 = conn.prepareStatement("select id, user_id,vector, vec_distance_cosine(vector,?) distance from dalongrong_vec where vector match ? and type = ? and version = ?  and k = 10 order by distance");psv2.setString(1, Arrays.toString(vector));psv2.setString(2, Arrays.toString(vector));psv2.setString(3, "text");psv2.setString(4, "v1");var rs = psv2.executeQuery();while (rs.next()) {System.out.println("ID: " + rs.getString("id") + ", vector: " + rs.getString("vector") +"vector: " + rs.getString("user_id") + ", distance:"+ rs.getFloat("distance"));}} catch (SQLException e) {e.printStackTrace();throw new RuntimeException(e);}}
}

参考资料

https://github.com/rqlite/rqlite-jdbc

https://github.com/rqlite/rqlite-jdbc/pull/1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GitHub每日速递 251013】SurfSense:可定制AI研究神器,连接多源知识,功能超丰富!

免费开源!可复制粘贴的组件助你打造专属组件库 shadcn-ui/ui 是一个 提供精美设计、可访问性良好的UI组件和代码分发平台 的 开源前端工具库。简单讲,它是一套开箱即用的高质量界面组件,支持主流前端框架,方便开发…

FileZilla Client升级之后报了一个错误queue.sqlite3文件保存失败

FileZilla Client升级之后报了一个错误queue.sqlite3文件保存失败FileZilla Client升级之后报了一个错误queue.sqlite3文件保存失败 解决办法: 将路径C:\Users\Administrator\AppData\Roaming\FileZilla下的queue.sql…

tap issue

https://lewisdenny.io/tracing_packets_out_an_external_network_with_ovn/ https://docs.openstack.org/operations-guide/ops-network-troubleshooting.html

通配符SSL证书价格对比 iTrustSSL与RapidSSL哪个更有优势?

当前,SSL证书机构数量众多,面对琳琅满目的SSL证书品牌,不少用户难免会产生“乱花渐欲迷人眼”之感。莫急,今日SSL证书排行榜将为大家推荐两款性价比出众的SSL证书。在商用SSL证书中,目前最受欢迎的两个品牌就是iT…

降低网络保险成本的实用技巧与网络安全实践

本文详细探讨了影响网络保险保费的关键因素,包括安全态势评估、数据处理类型、技术基础设施依赖等,并提供了实施健全网络安全实践、定期风险评估、投资安全技术等降低保费的具体策略。影响网络保险保费的因素 网络保…

自动评估对话质量的AI技术突破

某研究中心提出新型神经网络模型,通过双向LSTM和注意力机制自动评估多领域对话质量,客户满意度预测准确率提升27%,适用于不同对话管理系统。自动评估与语音助手的对话质量 随着与语音助手的交互越来越多地涉及多轮对…

4.2 基于模型增强的无模型强化学习(Model-based Augmented Model-free RL)

基于模型增强的无模型强化学习(Model-based Augmented Model-free RL) (Dyna-Q, I2A)Dyna-Q 算法 在学习到环境模型之后,可以利用该模型增强无模型算法。 无模型算法(如 Q-learning)可从以下两种类型的转移样本中…

乐理 -07 和弦, 和声

#和弦 与 和声..#三和弦#大三和弦 与 小三和弦 感情。 多数情况下#增三和弦 与 减三和弦 纯五度是协和的 增五度减五度不和谐 增五度 多用于扩张的 大六度 减五度 多用于收缩的 纯四度 大三度

4.1 基于模型的强化学习(Model-based RL)

基于模型的强化学习(Model-based RL)无模型与有模型方法的比较在此前介绍的无模型(Model-free, MF)强化学习中,我们无需了解环境的动态规律即可开始训练策略: \[p(s | s, a), \quad r(s, a, s) \]我们仅需采样状…

3.8 最大熵强化学习(Maximum Entropy RL, SAC)

最大熵强化学习(Maximum Entropy RL, SAC)背景 此前的所有强化学习方法均专注于最大化回报(return),这对应于强化学习中的利用(exploitation):我们只关心最优策略。 而探索(exploration)通常由额外机制实现,…

乐理 -06 和弦, 和声

#和弦 与 和声..#三和弦大三和弦 与 小三和弦 感情。 多数情况下

3.7 带经验回放的演员–评论家算法(Actor-Critic with Experience Replay, ACER)

带经验回放的演员–评论家算法(Actor-Critic with Experience Replay, ACER)概述 前述自然梯度方法(如 TRPO、PPO)均为随机演员–评论家(stochastic actor–critic)结构,因此属于 on-policy 学习。 相比之下,o…

3.6 策略优化(TRPO 与 PPO)

策略优化(TRPO 与 PPO)信赖域策略优化(Trust Region Policy Optimization, TRPO) 基本原理 @Schulman2015 将自然梯度的思想推广到非线性函数逼近(如深度网络),提出了 TRPO。 该方法已在实践中被 PPO(Proximal…

3.5 自然梯度(Natural Gradients)

自然梯度(Natural Gradients)学习稳定性 此前介绍的深度强化学习方法均使用随机梯度下降(SGD)或其变体(RMSProp、Adam 等)来训练神经网络函数逼近器。 其基本思想是:沿损失函数梯度的反方向(或策略梯度的正方向…

3.3 离策略演员–评论家(Off-policy Actor–Critic)

离策略演员–评论家(Off-policy Actor–Critic)On-policy 与 Off-policy 演员–评论家算法通常是on-policy(同策略)的:用于探索环境的动作必须由当前策略生成,否则评论者(Critic)提供的反馈(优势项)会在策略…

3.4 深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)

深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)背景与动机 在前面的策略梯度方法中,演员(Actor)产生的是随机策略 \(\pi_\theta(s)\),即输出动作的概率分布(离散动作)或分布参数(连续动作)。…

20232325 2025-2026-1 《网络与系统攻防技术》实验一实验报告

一、实验内容 本次实验以Linux可执行文件pwn1为对象,核心目标是通过三种技术手段篡改程序执行流程,触发原本不可运行的getShell函数或自定义shellcode,具体如下: (一)手工修改可执行文件,直接跳转到getShell函数…

MINIX 3 值得仔细研究 from Tanenbaum A., Bos H. Modern Operating Systems 5ed 2023

10.1.6 MINIX One property that all modern UNIX systems have is that they are large and complicated, in a sense the antithesis of the original idea behind UNIX. Even if the source code were freely avail…

乐理 -06 相对音感 绝对音感

相对音感 判断两个音之间的距离练习绝对音感 无参照音下判断

【光照】UnityURP[天空盒]原理与[动态天空盒]实现

《Unity URP动态天空盒技术解析》专栏文章摘要:URP天空盒采用立方体贴图技术,通过六面HDR图像构成全景环境,作为无限远背景始终跟随摄像机。核心技术包括:1.基于主光源方向的昼夜动态切换(smoothstep平滑过渡);…