Skip to content

Python:增删改查

写入(Upsert)

python
from qdrant_client.models import PointStruct

def upsert_docs(client, collection, ids, vectors, payloads):
    client.upsert(
        collection_name=collection,
        points=[
            PointStruct(id=i, vector=v, payload=p)
            for i, v, p in zip(ids, vectors, payloads)
        ],
    )

# 示例:3 条 384 维(请换成真实 embedding)
import random
DIM = 384
ids = [1, 2, 3]
vectors = [[random.random() for _ in range(DIM)] for _ in ids]
payloads = [
    {"text": "Qdrant 是向量数据库", "doc": "a"},
    {"text": "Python 客户端简单易用", "doc": "b"},
    {"text": "Embedding 维度要一致", "doc": "c"},
]
upsert_docs(client, "kb_zh", ids, vectors, payloads)

按 ID 查询

python
pts = client.retrieve(
    collection_name="kb_zh",
    ids=[1, 2],
    with_payload=True,
    with_vectors=False,
)
for p in pts:
    print(p.id, p.payload)

更新 Payload(不改动向量)

python
from qdrant_client.models import PointIdsList

client.set_payload(
    collection_name="kb_zh",
    payload={"reviewed": True},
    points=PointIdsList(points=[1]),
)

删除点

python
from qdrant_client.models import PointIdsList

client.delete(
    collection_name="kb_zh",
    points_selector=PointIdsList(points=[3]),
)

删除集合

python
client.delete_collection("kb_zh")

下一节:搜索与过滤