Perbarui dokumen yang sudah ada dalam koleksi DashVector menggunakan SDK Python.
Jika ID dokumen yang akan diperbarui tidak ada, operasi pembaruan tidak berdampak apa pun.
Jika hanya beberapa bidang yang diperbarui, bidang lainnya secara default diatur ke
None.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
DashVector Kluster
Versi terbaru dari SDK DashVector
Signature API
Collection.update(
docs: Union[Doc, List[Doc], Tuple, List[Tuple]],
partition: Optional[str] = None,
async_req: False
) -> DashVectorResponseContoh
Ganti
YOUR_API_KEYdanYOUR_CLUSTER_ENDPOINTdengan kredensial aktual Anda.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 retPerbarui 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 retPerbarui 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 |
| - | Satu atau beberapa dokumen yang akan diperbarui. | |
| Optional[str] | None | Nama partisi target. |
| bool | False | Atur ke |
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
strdan nilainya berupastr,int,bool, ataufloat.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 |
| int | Kode status. Untuk informasi selengkapnya, lihat Kode status. | 0 |
| str | Pesan hasil. | success |
| str | ID permintaan unik. | 19215409-ea66-4db9-8764-26ce2eb5bb99 |