全部产品
Search
文档中心

DashVector:Perbarui dokumen

更新时间:Mar 12, 2026

Perbarui dokumen yang sudah ada dalam koleksi DashVector menggunakan SDK Python.

Penting
  1. Jika ID dokumen yang akan diperbarui tidak ada, operasi pembaruan tidak berdampak apa pun.

  2. Jika hanya beberapa bidang yang diperbarui, bidang lainnya secara default diatur ke None.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Signature API

Collection.update(
    docs: Union[Doc, List[Doc], Tuple, List[Tuple]],
    partition: Optional[str] = None,
    async_req: False
) -> DashVectorResponse

Contoh

Catatan
  1. Ganti YOUR_API_KEY dan YOUR_CLUSTER_ENDPOINT dengan kredensial aktual Anda.

  2. Buat koleksi bernama quickstart. Untuk informasi selengkapnya, lihat bagian "Contoh" pada Buat koleksi.

Semua contoh berbagi konfigurasi client berikut:

import dashvector
from dashvector import Doc
import numpy as np

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)
collection = client.get(name='quickstart')

Perbarui satu dokumen

Cara paling sederhana untuk memperbarui dokumen adalah dengan menggunakan tupel (id, vector):

# Perbarui dengan menggunakan tupel (id, vector)
ret = collection.update(
    ('2', [0.1, 0.1, 0.1, 0.1])
)

Atau, gunakan objek Doc untuk kontrol yang lebih eksplisit:

# Perbarui dengan menggunakan objek Doc
ret = collection.update(
    Doc(
        id='1',
        vector=[0.1, 0.2, 0.3, 0.4]
    )
)

# Verifikasi bahwa pembaruan berhasil
assert ret

Perbarui dokumen dengan bidang

Teruskan kamus fields untuk memperbarui metadata bersamaan dengan vektor. Bidang dapat ditentukan sebelumnya dalam skema koleksi atau ditambahkan secara dinamis sebagai bidang bebas skema:

# Perbarui vektor dan bidang dengan menggunakan objek Doc
ret = collection.update(
    Doc(
        id='3',
        vector=np.random.rand(4),
        fields={
            # Bidang yang telah ditentukan (tipe harus sesuai dengan skema koleksi)
            'name': 'zhangsan', 'weight': 70.0, 'age': 30,
            # Bidang bebas skema (str, int, bool, atau float)
            'anykey1': 'str-value', 'anykey2': 1,
            'anykey3': True, 'anykey4': 3.1415926
        }
    )
)

# Format tupel setara: (id, vector, fields)
ret = collection.update(
    ('4', np.random.rand(4), {'foo': 'bar'})
)

Perbarui beberapa dokumen dalam batch

Teruskan daftar objek Doc atau tupel untuk memperbarui beberapa dokumen dalam satu panggilan:

# Pembaruan batch dengan menggunakan objek Doc
ret = collection.update(
    [
        Doc(id=str(i+5), vector=np.random.rand(4)) for i in range(10)
    ]
)

# Pembaruan batch dengan menggunakan tupel (id, vector, fields)
ret = collection.update(
    [
        ('15', [0.2, 0.7, 0.8, 1.3], {'age': 20}),
        ('16', [0.3, 0.6, 0.9, 1.2], {'age': 30}),
        ('17', [0.4, 0.5, 1.0, 1.1], {'age': 40})
    ]
)

# Verifikasi bahwa pembaruan batch berhasil
assert ret

Perbarui dokumen secara asinkron

Atur async_req=True untuk menjalankan pembaruan tanpa blocking. Panggil .get() pada future yang dikembalikan untuk mengambil hasilnya:

# Kirim pembaruan batch asinkron
ret_future = collection.update(
    [
        Doc(id=str(i+18), vector=np.random.rand(4), fields={'name': 'foo' + str(i)}) for i in range(10)
    ],
    async_req=True
)

# Tunggu hingga pembaruan asinkron selesai
ret = ret_future.get()

Perbarui dokumen dengan sparse vector

ret = collection.update(
    Doc(
        id='28',
        vector=[0.1, 0.2, 0.3, 0.4],
        sparse_vector={1: 0.4, 10000: 0.6, 222222: 0.8}
    )
)

Parameter permintaan

Parameter

Tipe

Default

Deskripsi

docs

Union[Doc, List[Doc], Tuple, List[Tuple]]

-

Satu atau beberapa dokumen yang akan diperbarui.

partition

Optional[str]

None

Nama partisi target.

async_req

bool

False

Atur ke True untuk eksekusi asinkron.

Catatan
  1. Catatan mengenai parameter docs:

    • Format tupel: Elemen harus mengikuti urutan (id, vector) atau (id, vector, fields). Tupel setara dengan objek Doc.

    • Bidang: Setiap bidang merupakan pasangan kunci-nilai di mana kuncinya berupa str dan nilainya berupa str, int, bool, atau float.

      • Jika kunci telah ditentukan saat pembuatan koleksi, tipe nilai harus sesuai dengan tipe yang telah ditentukan.

      • Jika kunci belum ditentukan, nilai dapat berupa salah satu tipe yang didukung. Untuk informasi selengkapnya, lihat Bebas skema.

Respons

Mengembalikan objek DashVectorResponse:

Parameter

Tipe

Deskripsi

Contoh

code

int

Kode status. Untuk informasi selengkapnya, lihat Kode status.

0

message

str

Pesan hasil.

success

request_id

str

ID permintaan unik.

19215409-ea66-4db9-8764-26ce2eb5bb99