You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Qdrant客户端列出集合中存储的文本数据?

解决方案:从Qdrant集合中提取所有文本内容

当然可以做到,Qdrant提供了scroll API来遍历集合内的所有数据点,你可以指定只返回payload中的文本字段,无需获取嵌入向量,高效提取所需内容。

核心实现思路

Qdrant的每个数据点由id、vector(嵌入向量)和payload(附加数据,比如你的文本)组成。通过scroll方法,你可以:

  • 遍历集合内全部数据点
  • 仅返回payload中的文本字段
  • 跳过向量数据,提升请求效率

Python客户端代码示例

假设你的文本存储在payload的text字段中,集合名称为your_collection:

from qdrant_client import QdrantClient

# 初始化Qdrant客户端
client = QdrantClient(host="localhost", port=6333)
collection_name = "your_collection"

all_texts = []
next_offset = None

# 循环遍历所有数据点(适合数据量较大的情况)
while True:
    # 调用scroll接口,指定只返回text字段,不返回向量
    points, next_offset = client.scroll(
        collection_name=collection_name,
        limit=10,  # 你这里只有10条数据,直接设为10即可一次获取
        offset=next_offset,
        with_payload=True,
        payload_fields=["text"],
        with_vectors=False
    )
    # 提取每个点的文本内容
    for point in points:
        all_texts.append(point.payload["text"])
    # 没有下一页时退出循环
    if next_offset is None:
        break

# 输出所有文本
for idx, text in enumerate(all_texts, 1):
    print(f"text_{idx}: {text}")

注意事项

  1. 如果你的文本存储在payload的其他字段(比如content),请将payload_fields中的值替换为实际字段名。
  2. 若已知集合总数据量(比如你这里的10条),可以直接将limit设为对应数值,无需循环,一次请求即可获取全部内容。
  3. with_vectors=False会禁止返回嵌入向量,大幅减少数据传输量,提升速度。

内容的提问来源于stack exchange,提问作者franky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:52:37