讲师中心 微信公众号
AI工具推荐 视频效率加速

Qdrant Python SDK 中日期时间过滤的正确实现方法

陌婷姑娘_6168

陌婷姑娘_6168

发布时间:2026-02-24 16:54:01

|

877人浏览过

|

来源于php中文网

原创

Qdrant Python SDK 中日期时间过滤的正确实现方法

qdrant 当前版本(v1.7.x 及更早)不支持直接使用 datetime 对象进行范围过滤,需将时间转换为 unix 时间戳(整型秒或毫秒)后,通过 range 过滤器进行数值比较。

qdrant 当前版本(v1.7.x 及更早)不支持直接使用 datetime 对象进行范围过滤,需将时间转换为 unix 时间戳(整型秒或毫秒)后,通过 range 过滤器进行数值比较。

在 Qdrant 中,所有字段过滤均基于底层存储的数据类型,而时间戳字段(如 "timestamp")在向量点(point)元数据中必须以数值形式(int 或 float)存储,才能被 range 过滤器正确解析。直接传入 Python 的 datetime 对象会导致类型校验失败,抛出类似 Input should be a valid number 的 Pydantic 错误。

✅ 正确做法是:统一使用 Unix 时间戳(毫秒级整数)表示时间,并确保写入与查询时类型一致。

361SCAN security check your skill python scripts
361SCAN security check your skill python scripts

扫描并分析已安装技能,用于查看指定技能目录的名称、描述和详情,或列出所有已安装的技能。

下载

1. 写入数据时:将 datetime 转为毫秒时间戳

from datetime import datetime
from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct, Payload

# 示例:构造带时间戳的点
dt = datetime(2024, 2, 22, 10, 4, 28, 658690)
timestamp_ms = int(dt.timestamp() * 1000)  # 转为毫秒级整数(推荐,精度更高)

point = PointStruct(
    id=1,
    vector=[0.1, 0.2, 0.3],
    payload={
        "text": "log entry",
        "timestamp": timestamp_ms  # ✅ 存为 int
    }
)

qdrant_client = QdrantClient("http://localhost:6333")
qdrant_client.upsert(collection_name="logs", points=[point])

2. 查询时:同样使用毫秒时间戳构建 range 过滤器

from datetime import datetime

# 构造查询起始时间
start_dt = datetime(2024, 2, 22, 10, 0, 0)
start_ts_ms = int(start_dt.timestamp() * 1000)

# 构建过滤查询(gte: 大于等于该时间)
query_filter = {
    "bool": {
        "filter": [
            {
                "range": {
                    "timestamp": {"gte": start_ts_ms}
                }
            }
        ]
    }
}

# 执行向量搜索(带过滤)
search_result = qdrant_client.search(
    collection_name="logs",
    query_vector=[0.1, 0.2, 0.3],
    query_filter=query_filter,
    limit=10
)

⚠️ 关键注意事项

  • 单位一致性:务必统一使用「毫秒」(推荐)或「秒」,但不能混用;Qdrant 本身无时间单位概念,仅做数值比较。
  • 字段类型预设:确保 collection schema 中 timestamp 字段未被错误声明为 string;若使用 create_collection,无需显式声明基础类型(Qdrant 自动推断),但 payload 中值必须为 int/float。
  • 时区处理:datetime.timestamp() 默认基于本地时区转换;如需 UTC 时间,请使用 datetime.utcnow().timestamp() 或更安全的 datetime.now(timezone.utc).timestamp()(Python 3.9+)。
  • 未来兼容性:Qdrant v1.8.0 将原生支持 datetime 类型字段及 ISO 格式字符串过滤(如 "2024-02-22T10:04:28.658Z"),但当前稳定版仍需手动转换。

✅ 总结

只要坚持「写入用毫秒整数、查询用毫秒整数」这一原则,即可在现有 Qdrant 版本中稳健实现高精度时间范围过滤。该方案性能优异、零依赖、完全兼容 SDK 各版本,是生产环境中的标准实践。

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2991

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

522

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6459

2023.08.02

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

6647

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

764

2025.10.23

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1758

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2724

2023.09.04

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn