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 sebagian indeks batch
- Memperbarui sebagian indeks streaming
- Memperbarui metadata indeks
Mengganti seluruh indeks
Untuk mengganti konten kumpulan update atau streaming Index yang ada, gunakan metode IndexService.UpdateIndex.
- Tetapkan
Index.metadata.contentsDeltaUrike Cloud Storage URI yang menyertakan vektor yang ingin Anda perbarui. - Tetapkan
Index.metadata.isCompleteOverwriteke true. Jika ditetapkan ke true, seluruh indeks akan ditimpa sepenuhnya dengan file metadata baru yang Anda berikan.
gcloud
- Perbarui file metadata indeks Anda untuk menetapkan
contentsDeltaUridanisCompleteOverwrite=true. - Gunakan
gcloud ai indexes updateperintah.
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 Agent Platform.
- 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 Agent Platform.
- 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
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
Saat memanggil metode di bawah, tetapkan is_complete_overwrite=True untuk mengganti konten indeks sepenuhnya.
Konsol
Gunakan petunjuk ini untuk mengupdate konten indeks batch.
- Di bagian Agent Platform pada konsol Google Cloud , buka bagian Deploy and Use. Pilih Penelusuran Vektor
- Pilih indeks yang ingin Anda perbarui. Halaman Index info akan terbuka.
- Pilih Edit Index. Panel edit indeks akan terbuka.
- Di kolom Cloud Storage, cari dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Centang kotak penimpaan lengkap untuk menimpa semua data yang ada.
- Klik Perbarui
- Klik Done untuk menutup panel.
Mengupdate sebagian indeks batch
Untuk memperbarui embedding Index batch yang ada, gunakan
metode IndexService.UpdateIndex.
- Tetapkan
Index.metadata.contentsDeltaUrike Cloud Storage URI yang menyertakan vektor yang ingin Anda perbarui. - Tetapkan
Index.metadata.isCompleteOverwriteke false.
Hanya vektor yang ditentukan dalam Index.metadata.contentsDeltaUri yang diupdate, disisipkan, atau dihapus. Embedding lain yang ada dalam indeks tetap ada.
gcloud
- Perbarui file metadata indeks Anda untuk menetapkan
contentsDeltaUri. - Gunakan
gcloud ai indexes updateperintah.
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 Agent Platform.
- 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 Agent Platform.
- 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
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
Saat memanggil metode di bawah, tetapkan is_complete_overwrite=False.
Konsol
Gunakan petunjuk ini untuk mengupdate konten indeks batch.
- Di bagian Agent Platform pada konsol Google Cloud , buka bagian Deploy and Use. Pilih Penelusuran Vektor
- Pilih indeks yang ingin Anda perbarui. Halaman Index info akan terbuka.
- Pilih Edit Index. Panel edit indeks akan terbuka.
- Di kolom Cloud Storage, cari dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Pastikan kotak Complete overwrite tidak dicentang.
- Klik Perbarui
- Klik Done 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.
Memperbarui 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. Baca artikel 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 Agent Platform. Streaming Update 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 meng-upsert 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, embedding akan diperbarui. Jika tidak, embedding 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 hybrid, representasi embedding sparse dan padat untuk sebuah titik data didukung. Dalam operasi upsert, menghilangkan embedding rapat akan menghapus representasi rapat, dan menghilangkan embedding renggang akan menghapus representasi renggang.
Contoh ini mengupdate embedding rapat dan embedding sparse.
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 mengupdate embedding rapat dan menghapus embedding renggang.
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 mengupdate embedding sparse dan menghapus embedding dense.
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 mengupdate konten ke indeks streaming.
- Di konsol Google Cloud , buka halaman Penelusuran Vektor.
- Pilih indeks yang ingin Anda perbarui. Halaman Index info akan terbuka.
- Klik Edit Index. Panel edit indeks akan terbuka.
- Dari panel, pilih tab Upsert data point untuk menambahkan konten.
- Masukkan ID titik data.
- Masukkan setidaknya satu jenis embedding:
- Embedding rapat: Masukkan array nilai floating point yang dipisahkan koma. Jumlah nilai harus cocok dengan dimensi indeks.
- Embedding renggang:
- Masukkan dimensi embedding sparse 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 sesuai dengan jumlah dimensi embedding sparse.
- Opsional: Untuk mengaktifkan pemfilteran menurut batasan token pada titik data ini, klik Add token restrict, 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, dan masukkan nilai.
- Opsional: Untuk membantu mencegah banyak hasil yang serupa, masukkan string crowding tag.
- Klik Upsert.
- Klik Done 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 embedding
Ada banyak alasan Anda mungkin perlu memperbarui batasan streaming atau batasan numerik. Misalnya, saat menangani data bervolume tinggi dan bergerak cepat, Anda mungkin ingin memprioritaskan aliran data tertentu. Memperbarui batasan atau batasan numerik secara langsung memungkinkan Anda menyaring fokus secara real-time, sehingga memastikan data yang paling penting segera diproses atau disorot.
Anda dapat langsung memperbarui batasan titik data dan batasan numerik di dalam indeks streaming tanpa biaya pemadatan dari pembaruan 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 dalam titik data harus berupa nilai baru yang ingin Anda terapkan dalam update.
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 untuk mempertahankan paritas antara indeks dan sumber di dunia nyata. Pertimbangkan penjual buku yang menggunakan embedding vektor untuk merepresentasikan inventaris buku mereka untuk tujuan penelusuran dan rekomendasi. Jika buku terjual habis atau dihapus dari stok, penghapusan titik data yang sesuai dari indeks akan memastikan 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 Agent Platform pada konsol Google Cloud , buka bagian Deploy and Use. Pilih Penelusuran Vektor
- Pilih indeks streaming yang ingin Anda perbarui. Halaman Index info akan terbuka.
- Pilih Edit Index. Panel edit indeks akan terbuka.
- Dari panel, pilih tab Hapus titik data.
- Tambahkan hingga 20 titik data dengan memberikan daftar ID titik data yang dipisahkan koma
- Klik Hapus.
- Klik Done 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 mengupdate embedding 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 Agent Platform.
- 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 Agent Platform.
- 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 yang mirip 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 hanya dapat memperbarui display_name dan description).
- Di bagian Agent Platform pada konsol Google Cloud , buka bagian Deploy and Use. Pilih Penelusuran Vektor
- Pilih indeks yang ingin Anda perbarui. Halaman Index info akan terbuka.
- Pilih Edit Index. Panel edit indeks akan terbuka.
- Perbarui kolom metadata yang diinginkan.
- Klik Perbarui
- Klik Done 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 kumpulan update.
Update streaming: Penelusuran Vektor menggunakan metrik berbasis heuristik untuk menentukan kapan harus memicu pemadatan. Jika data terlama yang tidak dikompresi berusia lima hari, pemadatan akan selalu dipicu. Anda akan dikenai biaya pembuatan ulang indeks dengan tingkat update batch yang sama, selain biaya update streaming.
Kumpulan update: 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 Agent Platform 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 pembatasan token, contoh ini menggunakan pembatasan 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 berikutnya
- Pelajari Parameter konfigurasi indeks.
- Pelajari cara Memantau indeks.