Schema Free

news/2025/2/28 15:30:54/文章来源:https://www.cnblogs.com/DashVector/p/18531661

向量检索服务DashVector在设计上支持Schema Free,在插入Doc、更新Doc、插入或更新Doc时,可设置任意KeyValue结构的字段(Field),如下所示:
Python示例:

collection.insert(Doc(id='1',vector=np.random.rand(4),fields={'name': 'zhangsan', 'weight':70.0, 'age':30, 'anykey1': 'anyvalue', 'anykey2': 1,'anykey3': True, 'anykey4': 3.1415926... ...})
)

说明

更多的Fields将消耗更多的资源(如内存、磁盘)

Field支持的数据类型

当前DashVector支持Python的4种基础数据类型:

  • str

  • float

  • int

  • bool

重要

Python的int类型可表达无限大小的整数,当前DashVector仅支持32位整数,范围为-2,147,483,648~2,147,483,647,需要用户自行保证数据未溢出。

检索时通过Field进行条件过滤

插入Doc、更新Doc、插入或更新Doc时所设置的任意KeyValue结构的字段(Field),可在检索Doc进行条件过滤,如下所示:
Python示例:

ret = collection.query(vector=[0.1, 0.2, 0.3, 0.4],filter='(age > 18 and anykey2 = 1) or (name like "zhang%" and anykey3 = false)'
)

说明

更多的Fields在检索时将消耗更多的资源(如CPU),同时复杂的filter表达式也将消耗更多的时间开销才能获取到结果

提前定义Field Schema的优势

在新建Collection的时候,可以预先定义Field Schema,如下所示:
Python示例:

ret = client.create(name='complex', dimension=4, fields_schema={'name': str, 'weight': float, 'age': int}
)

这样做的主要收益有如下3点:

  • 更快的检索速度 :条件过滤时,用预先定义的Field将会有更短的时间开销和更少的CPU算力开销

  • 更少的内存、磁盘占用 :未预先定义的Field,需要存储Field名称和Field值,而预先定义的Field仅存储Field值即可

  • filter预校验 :条件过滤时,预先定义的Field会校验filter的语法,当遇到类型不匹配时,会快速失败、立即返回;而未预先定义的Field,无法知道"正确"数据类型,无法进行预校验

通常而言,对于确定性的、大多数Doc都具有的Field,建议在新建Collection时候预先进行定义;对于无法提前预知、仅少量Doc独有的Field,可以在插入Doc时设置。

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

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

相关文章

0基础读顶会论文—流程即服务(PraaS):通过无服务器流程统一弹性云和有状态云

细粒度的无服务器函数为许多新应用提供了动力,这些应用受益于弹性扩展和按需付费计费模型,同时将基础设施管理开销降至最低。为了实现这些特性,函数即服务(FaaS)平台将计算和状态分离,PraaS 通过提供数据本地性、快速调用和高效通信改进了当前的 FaaSAbstract 细粒度的无…

安装和配置CentOS9

安装和配置CentOS9 一、下载CentOS9镜像文件 1.访问官网:首先,你需要访问CentOS的官网或阿里云镜像网站 2.选择版本:在官网上,选择CentOS9的64位操作系统版本进行下载。3.等待下载:点击下载链接后,等待镜像文件下载完成。 二、安装CentOS9 1. 创建虚拟机(以VMware WorkS…

wed服务器一览

cs架构 c客户端 s服务端 bs架构 浏览器nb(客户端) 网站是做服务端客户端浏览器 到 服务器 请求 服务器 到 客户端浏览器 相应

WebSocket简介

一、websocket简介 websocket是一种在单个TCP连接上进行全双工通信的协议。 websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向…

袋鼠云港口数智化解决方案发布,数智引领,加速“智变”丨2024袋鼠云秋季发布会回顾

2023年12月,交通运输部印发《关于加快智慧港口和智慧航道建设的意见》,《意见》贯穿了“3条主线”,其中最首要的主线是“数字化”,数字化是基础,必须通过数字赋能建设、生产、运营、管理、服务的全要素、全过程、全场景,将数据作为新的生产要素,方可夯实智慧港口和智慧航…

Netty 如何自动探测内存泄露的发生

本文基于 Netty 4.1.112.Final 版本进行讨论本文是 Netty 内存管理系列的最后一篇文章,在第一篇文章 《聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现》 中,笔者以 UnpooledByteBuf 为例,从整个内存管理的外围对 ByteBuf 的整个设计体系进行了详细的拆解剖析,随后在第…

ABB机器人IRB6640驱动器维修诊断分析

ABB工业机械手IRB6640是工业自动化领域的重要设备,其伺服驱动单元作为机器人的核心部件,负责提供动力和控制机器人的运动。然而,由于长时间运行、负载变化等因素,驱动单元可能会出现故障。一、ABB工业机械手IRB6640驱动器维修与诊断分析方法1.故障代码诊断: - ABB机器人伺…

HCL AppScan Standard 10.7.0 发布下载,新增功能介绍

HCL AppScan Standard 10.7.0 (Windows) - Web 应用程序安全测试HCL AppScan Standard 10.7.0 (Windows) - Web 应用程序安全测试 HCL AppScan Standard v10 for Windows Multilingual 请访问原文链接:https://sysin.org/blog/appscan-10/ 查看最新版。原创作品,转载请保留出…

惊爆!这些项目管理神器,让你的工作效率瞬间翻倍!

你是否还在为繁琐的项目管理而头疼?是否觉得团队沟通不畅、任务分配混乱、进度跟踪困难?别担心,今天我们就为你揭秘几款项目管理工具软件,它们将彻底改变你的工作方式,让你的工作效率瞬间翻倍! 一、板栗看板板栗看板是一款以直观、易用为特点的国产项目管理软件,它采用看…

Dubbo介绍

Dubbo介绍概要Dubbo是一个高性能的Java RPC框架。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案一、面向接口的远程…

AnytimeCL:难度加大,支持任意持续学习场景的新方案 | ECCV24

来源:晓飞的算法工程笔记 公众号,转载请注明出处论文: Anytime Continual Learning for Open Vocabulary Classification论文地址:https://arxiv.org/abs/2409.08518 论文代码:https://github.com/jessemelpolio/AnytimeCL创新点在线训练时,每个批次由新训练样本和类别平衡…