Dengan kueri penelusuran yang besar, memperbarui indeks Anda penting untuk selalu memiliki informasi yang paling akurat. Anda dapat memperbarui indeks Penelusuran Vektor dengan beberapa cara:
- Mengganti seluruh indeks
- Memperbarui indeks batch sebagian
- Memperbarui indeks streaming sebagian
- Memperbarui metadata indeks
Mengganti seluruh indeks
Untuk mengganti konten update batch atau streaming Index
yang ada,
gunakan metode IndexService.UpdateIndex
.
- Tetapkan
Index.metadata.contentsDeltaUri
ke Cloud Storage URI yang menyertakan vektor yang ingin Anda perbarui. - Tetapkan
Index.metadata.isCompleteOverwrite
ke true. Jika disetel ke benar, seluruh indeks akan sepenuhnya ditimpa dengan file metadata baru yang Anda berikan.
gcloud
- Perbarui file metadata indeks Anda untuk menetapkan
contentsDeltaUri
danisCompleteOverwrite=true
. - Gunakan perintah
gcloud ai indexes update
.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- LOCAL_PATH_TO_METADATA_FILE: Jalur lokal ke file metadata.
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai indexes update INDEX_ID \ --metadata-file=LOCAL_PATH_TO_METADATA_FILE \ --region=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud ai indexes update INDEX_ID ` --metadata-file=LOCAL_PATH_TO_METADATA_FILE ` --region=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud ai indexes update INDEX_ID ^ --metadata-file=LOCAL_PATH_TO_METADATA_FILE ^ --region=LOCATION ^ --project=PROJECT_ID
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INPUT_DIR: Jalur direktori Cloud Storage dari konten indeks.
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID
Meminta isi JSON:
{ "metadata": { "contentsDeltaUri": "INPUT_DIR", "isCompleteOverwrite": true } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-12T23:56:14.480948Z", "updateTime": "2022-01-12T23:56:14.480948Z" } } }
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Saat memanggil metode di bawah, tetapkan is_complete_overwrite=True
untuk mengganti konten indeks sepenuhnya.
Konsol
Gunakan petunjuk ini untuk memperbarui konten indeks batch.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Pilih indeks yang ingin diperbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. Panel edit indeks akan terbuka.
- Di kolom Cloud Storage, telusuri dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Centang kotak timpa semua untuk menimpa semua data yang ada.
- Klik Perbarui
- Klik Selesai untuk menutup panel.
Mengupdate indeks batch sebagian
Untuk memperbarui penyematan Index
batch yang ada, gunakan
metode IndexService.UpdateIndex
.
- Tetapkan
Index.metadata.contentsDeltaUri
ke Cloud Storage URI yang menyertakan vektor yang ingin Anda perbarui. - Tetapkan
Index.metadata.isCompleteOverwrite
ke salah (false).
Hanya vektor yang ditentukan dalam Index.metadata.contentsDeltaUri
yang diperbarui,
disisipkan, atau dihapus. Penyematan lain yang ada di indeks akan tetap ada.
gcloud
- Perbarui file metadata indeks Anda untuk menetapkan
contentsDeltaUri
. - Gunakan perintah
gcloud ai indexes update
.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- LOCAL_PATH_TO_METADATA_FILE: Jalur lokal ke file metadata.
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai indexes update INDEX_ID \ --metadata-file=LOCAL_PATH_TO_METADATA_FILE \ --region=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud ai indexes update INDEX_ID ` --metadata-file=LOCAL_PATH_TO_METADATA_FILE ` --region=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud ai indexes update INDEX_ID ^ --metadata-file=LOCAL_PATH_TO_METADATA_FILE ^ --region=LOCATION ^ --project=PROJECT_ID
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INPUT_DIR: Jalur direktori Cloud Storage dari konten indeks.
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID
Meminta isi JSON:
{ "metadata": { "contentsDeltaUri": "INPUT_DIR", "isCompleteOverwrite": false } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-12T23:56:14.480948Z", "updateTime": "2022-01-12T23:56:14.480948Z" } } }
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Saat memanggil metode di bawah, tetapkan is_complete_overwrite=False
.
Konsol
Gunakan petunjuk ini untuk memperbarui konten indeks batch.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Pilih indeks yang ingin diperbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. Panel edit indeks akan terbuka.
- Di kolom Cloud Storage, telusuri dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Pastikan kotak penimpaan lengkap sudah kosong.
- Klik Perbarui
- Klik Selesai untuk menutup panel.
Jika Index
memiliki deployment terkait
(lihat kolom Index.deployed_indexes
) lalu ketika ada perubahan
tertentu pada Index
asli selesai, DeployedIndex
otomatis diperbarui
secara asinkron di latar belakang untuk mencerminkan perubahan ini.
Untuk memeriksa apakah perubahan telah diterapkan, bandingkan waktu selesai operasi indeks update dan DeployedIndex.index_sync_time
.
Mengupdate sebagian indeks streaming
Dengan update streaming, Anda dapat mengupdate dan mengkueri indeks dalam beberapa detik. Saat ini, Anda tidak dapat menggunakan update streaming pada indeks kumpulan update yang ada. Anda harus membuat indeks baru. Lihat Membuat indeks untuk update streaming guna mempelajari lebih lanjut.
Anda akan dikenai biaya $0,45 per GB yang digunakan untuk update streaming. Untuk mempelajari harga lebih lanjut, lihat halaman harga Vertex AI. Update streaming diterapkan langsung ke indeks yang di-deploy dalam memori, yang kemudian ditampilkan dalam hasil kueri setelah penundaan singkat.
Melakukan upsert titik data
Gunakan contoh ini untuk melihat cara memperbarui dan menyisipkan titik data. Ingat, upsert-datapoints
hanya menerima JSON dalam format array.
Python
Python
Curl
Batas kuota throughput berkaitan dengan jumlah data yang disertakan dalam upsert. Jika ID titik data ada dalam indeks, penyematan akan diperbarui. Jika tidak, penyematan baru akan ditambahkan.
DATAPOINT_ID_1=
DATAPOINT_ID_2=
curl -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexes/${INDEX_ID}:upsertDatapoints \
-d '{datapoints: [{datapoint_id: "'${DATAPOINT_ID_1}'", feature_vector: [...]},
{datapoint_id: "'${DATAPOINT_ID_2}'", feature_vector: [...]}]}'
Dengan penelusuran campuran, yang merupakan Pratinjau publik, representasi penyematan yang jarang dan padat untuk titik data didukung. Dalam operasi penyisipan dan pembaruan, menghapus penyematan rapat akan menghapus representasi rapat, dan menghapus penyematan jarang akan menghapus representasi jarang.
Contoh ini memperbarui penyematan padat dan penyematan jarang.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexes/${INDEX_ID}:upsertDatapoints -d '{datapoints: [{datapoint_id: "111", feature_vector: [0.111, 0.111], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}}]}'
Contoh ini memperbarui penyematan padat dan menghapus penyematan jarang.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexes/${INDEX_ID}:upsertDatapoints -d '{datapoints: [{datapoint_id: "111", feature_vector: [0.111, 0.111]}]}'
Contoh ini memperbarui penyematan jarang dan menghapus penyematan rapat.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexes/${INDEX_ID}:upsertDatapoints -d '{datapoints: [{datapoint_id: "111", "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}}]}'
Konsol
Konsol
Gunakan petunjuk ini untuk memperbarui konten ke indeks streaming.
- Di konsol Google Cloud, buka halaman Vector Search.
- Pilih indeks yang ingin diperbarui. Halaman Info indeks akan terbuka.
- Klik Edit Indeks. Panel edit indeks akan terbuka.
- Dari panel, pilih tab Tambahkan/perbarui titik data untuk menambahkan konten.
- Masukkan ID titik data.
- Masukkan minimal satu jenis penyematan:
- Embedding rapat: Masukkan array nilai floating point yang dipisahkan koma. Jumlah nilai harus cocok dengan dimensi indeks.
- Embedding jarang (Pratinjau publik):
- Masukkan dimensi penyematan jarang sebagai array bilangan bulat yang dipisahkan koma. Jumlah nilai tidak harus cocok dengan dimensi indeks.
- Masukkan nilai sebagai array nilai floating point yang dipisahkan koma. Jumlah nilai harus cocok dengan jumlah dimensi penyematan yang jarang.
- Opsional: Untuk mengaktifkan pemfilteran berdasarkan batasan token pada titik data ini, klik Tambahkan batasan token, lalu masukkan namespace dan string yang dipisahkan koma sebagai token.
- Opsional: Untuk mengaktifkan pemfilteran menurut batasan numerik pada titik data ini, klik Tambahkan batasan numerik, masukkan namespace, pilih jenis angka, lalu masukkan nilai.
- Opsional: Untuk membantu mencegah banyak hasil yang serupa, masukkan string crowding tag.
- Klik Upsert.
- Klik Selesai untuk menutup panel.
Batas kuota throughput berkaitan dengan jumlah data yang disertakan dalam upsert. Jika ID titik data ada dalam indeks, embedding akan diperbarui. Jika tidak, embedding baru akan ditambahkan.
Memperbarui metadata penyematan
Ada banyak alasan Anda mungkin perlu memperbarui batasan streaming atau batasan angka. Misalnya, saat menangani data bervolume tinggi dan bergerak cepat, Anda mungkin ingin memprioritaskan aliran data tertentu. Memperbarui langsung batasan atau batasan numerik memungkinkan Anda meningkatkan fokus secara real time, sehingga memastikan data yang paling penting segera diproses atau ditandai.
Anda dapat langsung memperbarui batasan titik data dan batasan numerik di dalam indeks streaming tanpa biaya pemadatan update penuh.
Untuk melakukan update khusus metadata ini, Anda perlu menambahkan kolom update_mask
ke permintaan. Nilai update_mask
harus ditetapkan ke all_restricts
.
Nilai batasan dan batasan numerik yang ditetapkan di titik data harus berupa nilai baru yang ingin Anda terapkan dalam pembaruan.
Contoh berikut menunjukkan cara menambahkan batasan ke dua titik data yang ada.
DATAPOINT_ID_1=
DATAPOINT_ID_2=
curl -H "Content-Type: application/json" -H "Authorization: Bearer gcloud auth print-access-token" https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexes/${INDEX_ID}:upsertDatapoints \
-d '{datapoints:
[{datapoint_id: "'${DATAPOINT_ID_1}'", feature_vector: [...], restricts:[{namespace: "color", allow_list: ["red"]}]},
{datapoint_id: "'${DATAPOINT_ID_2}'", feature_vector: [...], restricts:[{namespace: "color", allow_list: ["red"]}]}
], update_mask: "all_restricts"}'
Menghapus titik data
Anda mungkin perlu menghapus titik data dari indeks streaming. Anda dapat melakukannya menggunakan curl atau dari konsol Google Cloud.
Kasus penggunaan utama untuk menghapus titik data dari indeks adalah mempertahankan paritas antara indeks dan sumbernya di dunia nyata. Pertimbangkan penjual buku yang menggunakan penyematan vektor untuk mewakili inventaris buku mereka untuk tujuan penelusuran dan rekomendasi. Jika buku terjual habis atau dihapus dari stok, menghapus titik data yang sesuai dari indeks akan memastikan bahwa hasil penelusuran dan rekomendasi tetap akurat dan terbaru.
Curl
curl -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/indexes/{INDEX_ID}:removeDatapoints -d '{datapoint_ids: ["'{DATAPOINT_ID_1}'", "'{DATAPOINT_ID_2}'"]}'
Konsol
Konsol
Gunakan petunjuk ini untuk menghapus titik data dari indeks streaming.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Pilih indeks streaming yang ingin diperbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. Panel edit indeks akan terbuka.
- Dari panel, pilih tab Hapus titik data.
- Tambahkan maksimal 20 titik data dengan memberikan daftar ID titik data yang dipisahkan koma
- Klik Hapus.
- Klik Selesai untuk menutup panel.
Python
Python
Memperbarui metadata indeks
IndexService.UpdateIndex
juga dapat digunakan untuk memperbarui kolom metadata
display_name
, description
, dan labels
untuk indeks batch dan streaming. Perhatikan
bahwa satu panggilan ke UpdateIndex
dapat memperbarui penyematan indeks atau kolom
metadata ini, tetapi tidak keduanya sekaligus.
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- LOCAL_PATH_TO_METADATA_FILE: Jalur lokal ke file metadata.
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai indexes update INDEX_ID \ --metadata-file=LOCAL_PATH_TO_METADATA_FILE \ --region=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud ai indexes update INDEX_ID ` --metadata-file=LOCAL_PATH_TO_METADATA_FILE ` --region=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud ai indexes update INDEX_ID ^ --metadata-file=LOCAL_PATH_TO_METADATA_FILE ^ --region=LOCATION ^ --project=PROJECT_ID
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INPUT_DIR: Jalur direktori Cloud Storage dari konten indeks.
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID
Meminta isi JSON:
{ "metadata": { "description": "Updated description", "display_name": "Updated display name" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-12T23:56:14.480948Z", "updateTime": "2022-01-12T23:56:14.480948Z" } } }
Python
Konsol
Gunakan petunjuk ini untuk memperbarui metadata indeks (konsol terbatas untuk
memperbarui display_name
dan description
).
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Pilih indeks yang ingin diperbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. Panel edit indeks akan terbuka.
- Perbarui kolom metadata yang diinginkan.
- Klik Perbarui
- Klik Selesai untuk menutup panel.
Pemadatan
Secara berkala, indeks Anda di-build ulang untuk memperhitungkan semua update baru sejak build ulang terakhir. Build ulang ini, atau "pemadatan", meningkatkan performa kueri dan keandalan. Pemadatan terjadi untuk update streaming dan update batch.
Update streaming: Vector Search menggunakan metrik berbasis heuristik untuk menentukan kapan harus memicu pemadatan. Jika data terlama yang tidak dikompresi sudah berusia lima hari, pemadatan selalu dipicu. Anda akan dikenai biaya pembuatan ulang indeks dengan tingkat update batch yang sama, selain biaya update streaming.
Pembaruan batch: Terjadi saat ukuran set data inkremental > 20% dari ukuran set data dasar.
Mem-build ulang dan membuat kueri untuk indeks Anda
Anda dapat mengirim permintaan pencocokan atau pencocokan batch seperti biasa dengan grpc cli, library klien, atau Vertex AI SDK untuk Python. Saat mem-build ulang kueri, Anda mungkin akan melihat update dalam beberapa detik. Untuk mempelajari cara membuat kueri indeks, lihat Indeks kueri untuk mendapatkan tetangga terdekat.
Kolom opsional
Saat membuat indeks, ada beberapa kolom opsional yang dapat Anda gunakan untuk menyesuaikan kueri.
Melakukan upsert dengan batasan
Melakukan upsert indeks dan menambahkan batasan adalah cara memberi tag pada titik data sehingga titik data tersebut sudah teridentifikasi untuk difilter pada waktu kueri. Anda mungkin ingin menambahkan tag pembatasan untuk membatasi hasil yang ditampilkan di data sebelum kueri dikirim. Misalnya, pelanggan ingin menjalankan kueri pada indeks, tetapi ingin memastikan hasilnya hanya menampilkan item yang cocok dengan "merah" dalam penelusuran untuk alas kaki. Pada contoh berikut, indeks di-upsert dan memfilter semua sepatu merah, tetapi menolak yang biru. Hal ini memastikan filter penelusuran dalam opsi spesifik terbaik dari indeks yang besar dan bervariasi sebelum dijalankan.
Selain batasan token, contoh ini menggunakan batasan numerik. Dalam hal ini, titik data dikaitkan dengan harga 20, panjang 0,3, dan lebar 0,5. Pada saat kueri, Anda dapat menggunakan batasan numerik ini untuk memfilter hasil guna membatasi hasil kueri pada nilai harga, panjang, dan lebar. Misalnya, titik data ini akan muncul dalam kueri yang memfilter harga > 25, panjang < 1, dan lebar < 1.
Untuk mempelajari pemfilteran lebih lanjut, lihat Penelusuran Vektor untuk Pengindeksan.
Python
# Upsert datapoints
_TEST_DATAPOINT_1 = aiplatform_v1.types.index.IndexDatapoint(
datapoint_id="3",
feature_vector=[0.00526886899, -0.0198396724],
restricts=[
aiplatform_v1.types.index.IndexDatapoint.Restriction(namespace="Color", allow_list=["red"])
],
numeric_restricts=[
aiplatform_v1.types.index.IndexDatapoint.NumericRestriction(
namespace="cost",
value_int=1,
)
],
)
_TEST_DATAPOINT_2 = aiplatform_v1.types.index.IndexDatapoint(
datapoint_id="4",
feature_vector=[0.00526886899, -0.0198396724],
numeric_restricts=[
aiplatform_v1.types.index.IndexDatapoint.NumericRestriction(
namespace="cost",
value_double=0.1,
)
],
crowding_tag=aiplatform_v1.types.index.IndexDatapoint.CrowdingTag(crowding_attribute="crowding"),
)
_TEST_DATAPOINT_3 = aiplatform_v1.types.index.IndexDatapoint(
datapoint_id="5",
feature_vector=[0.00526886899, -0.0198396724],
numeric_restricts=[
aiplatform_v1.types.index.IndexDatapoint.NumericRestriction(
namespace="cost",
value_float=1.1,
)
],
)
_TEST_DATAPOINTS = [_TEST_DATAPOINT_1, _TEST_DATAPOINT_2, _TEST_DATAPOINT_3]
my_streaming_index = my_streaming_index.upsert_datapoints(datapoints=_TEST_DATAPOINTS)
# Dynamic metadata update
_TEST_DATAPOINT_4 = aiplatform_v1.types.index.IndexDatapoint(
datapoint_id="-2",
numeric_restricts=[
aiplatform_v1.types.index.IndexDatapoint.NumericRestriction(
namespace="cost",
value_float=1.1,
)
],
)
my_streaming_index = my_streaming_index.upsert_datapoints(datapoints=[_TEST_DATAPOINT4], update_mask=["all_restricts"])
curl
curl -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${ENDPOINT}/v1/projects/${PROJECT_ID}/locations/us-central1/indexes/${INDEX_ID}:upsertDatapoints \
-d '{
datapoints: [
{
datapoint_id: "'${DATAPOINT_ID_1}'",
feature_vector: [...],
restricts: { namespace: "color", allow_list: ["red"], deny_list: ["blue"]},
numeric_restricts: [{namespace: "price", value_int: 20}, {namespace: "length", value_float: 0.3}, {namespace: "width", value_double: 0.5}]
}
]}'
Melakukan upsert dengan crowding
Crowding tag membatasi hasil yang serupa dengan meningkatkan keragaman hasil.
Crowding adalah batasan pada daftar tetangga yang dihasilkan oleh penelusuran tetangga terdekat yang mengharuskan tidak lebih dari beberapa nilai, dari grup hasil, yang menampilkan nilai crowding_attribute
yang sama. Misalnya, katakanlah Anda kembali
berbelanja sepatu secara online. Anda ingin melihat berbagai macam warna dalam hasil penelusuran, tetapi mungkin
ingin menggunakannya dalam satu gaya, seperti sepatu bola. Anda dapat meminta agar tidak lebih dari 3 pasang sepatu dengan
warna yang sama ditampilkan dengan menetapkan per_crowding_attribute_num_neighbors
= 3
dalam kueri, dengan asumsi Anda menetapkan crowding_attribute ke warna sepatu
saat memasukkan titik data tersebut.
Kolom ini menunjukkan jumlah maksimum kecocokan yang diizinkan dengan tag kerumunan yang sama.
curl -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${ENDPOINT}/v1/projects/${PROJECT_ID}/locations/us-central1/indexes/${INDEX_ID}:upsertDatapoints \
-d '{
datapoints: [
{
datapoint_id: "'${DATAPOINT_ID_1}'",
feature_vector: [...],
restricts: { namespace: "type", allow_list: ["cleats"]}
crowding_tag: { crowding_attribute: "red-shoe"},
}
]}'
Langkah selanjutnya
- Pelajari Parameter konfigurasi indeks
- Pelajari cara Memantau indeks