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

milvus如何存储特殊类型的数据

1 时间数据

Milvus可以存储datetime信息,但没有专门的 datetime数据类型。

1) int64存储Unix时间戳

将日期时间(如 "2023-10-27 14:30:00")转换为一个int64整数,代表自 1970年1月1日 00:00:00 UTC (Unix 纪元) 以来的秒数或毫秒数,示例代码如下。

from datetime import datetime, timezone
import time
from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection# 连接 Milvus
connections.connect("default", host="localhost", port="19530")# 定义 Schema (包含一个 INT64 时间戳字段)
fields = [FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128),FieldSchema(name="timestamp", dtype=DataType.INT64),  # 存储 Unix 时间戳 (秒)
]
schema = CollectionSchema(fields, description="Example with datetime")
collection_name = "example_collection"
collection = Collection(collection_name, schema)# 插入数据 - 转换 datetime 为 timestamp
current_dt = datetime.now(timezone.utc)  # 获取当前 UTC 时间
timestamp_sec = int(current_dt.timestamp())  # 转换为秒级 Unix 时间戳data = [[1001],                                  # id[[0.1] * 128],                           # embedding (示例)[timestamp_sec],                         # timestamp
]mr = collection.insert(data)# 构建索引、加载集合 (略)...# 查询 - 时间范围过滤 (查找过去24小时内插入的向量)
start_time = int((datetime.now(timezone.utc) - timedelta(hours=24)).timestamp())
end_time = int(datetime.now(timezone.utc).timestamp())search_params = {"metric_type": "L2", "params": {"nprobe": 10}}
results = collection.search(data=[[0.5]*128],                        # 查询向量anns_field="embedding",param=search_params,limit=10,expr=f"timestamp >= {start_time} AND timestamp <= {end_time}",  # 高效的范围过滤
)

2) varchar/string存储ISO 8601格式字符串

将日期时间格式化为字符串,如"2023-10-27T14:30:00Z (UTC 时间)或"2023-10-27 14:30:00"。

reference

---

timestamp

https://milvus.io/docs/timestamp.md

http://www.lryc.cn/news/624910.html

相关文章:

  • Milvus向量数据库安装步骤
  • 大厂 | 华为半导体业务部2026届秋招启动
  • 【大模型】RAG
  • 基于nvm安装管理多个node.js版本切换使用(附上详细安装使用图文教程+nvm命令大全)
  • ANSI终端色彩控制知识散播(I):语法封装(Python)——《彩色终端》诗评
  • 楼宇自控系统深化设计需关注哪些核心要点?技术与应用解析
  • 第一阶段C#-14:委托,事件
  • ReactNative开发实战——React Native开发环境配置指南
  • 机器翻译论文阅读方法:顶会(ACL、EMNLP)论文解析技巧
  • ADC的实现(单通道,多通道,DMA)
  • 如何编写自己的Spring容器
  • 【EI会议征稿】2025第四届健康大数据与智能医疗国际会议(ICHIH 2025)
  • VS Code Copilot 完整使用教程(含图解)
  • 全局锁应用场景理解
  • 深度学习——R-CNN及其变体
  • 04 类型别名type + 检测数据类型(typeof+instanceof) + 空安全+剩余和展开(运算符 ...)简单类型和复杂类型 + 模块化
  • Spark 运行流程核心组件(三)任务执行
  • 实习两个月总结
  • [系统架构设计师]软件架构的演化与维护(十)
  • SpringBoot--JWT
  • 大数据计算引擎(四)—— Impala
  • React diff——差异协调算法简介
  • 深入解析 Qwen3 GSPO:一种稳定高效的大语言模型强化学习算法
  • 整体设计 之“凝聚式中心点”原型 --整除:智能合约和DBMS的深层融合 之2
  • LLM - MCP传输协议解读:从SSE的单向奔赴到Streamable HTTP的双向融合
  • 【软考架构】第4章 信息安全的抗攻击技术
  • 群晖nas中 打开PHP连接MariaDB 功能扩展
  • CMakeLists.txt 学习笔记
  • SQL详细语法教程(六)存储+索引
  • Vue3+Vite MPA多页面应用开发完整指南 – 从零搭建到部署优化