Dengan kueri penelusuran yang besar, memperbarui indeks Anda penting untuk selalu memiliki informasi yang paling akurat. Anda dapat memperbarui indeks Vector Search 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 (true), seluruh indeks akan ditimpa sepenuhnya 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: Google Cloud Project ID 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: Google Cloud Project ID 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 API Python.
Saat memanggil metode di bawah, tetapkan is_complete_overwrite=True
untuk mengganti sepenuhnya konten indeks.
Konsol
Gunakan petunjuk ini untuk memperbarui konten indeks batch.
- Di bagian Vertex AI pada Google Cloud konsol, buka bagian Deploy dan Gunakan. Pilih Vector Search
- Pilih indeks yang ingin Anda perbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. Panel edit indeks akan terbuka.
- Di kolom Cloud Storage, cari dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Centang kotak timpa sepenuhnya untuk menimpa semua data yang ada.
- Klik Perbarui.
- Klik Selesai untuk menutup panel.
Memperbarui indeks batch sebagian
Untuk memperbarui penyematan batch 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 salah (false).
Hanya vektor yang ditentukan dalam Index.metadata.contentsDeltaUri
yang diperbarui,
disisipkan, atau dihapus. Embedding lain yang ada dalam indeks 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: Google Cloud Project ID 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: Google Cloud Project ID 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 API Python.
Saat memanggil metode di bawah, setel is_complete_overwrite=False
.
Konsol
Gunakan petunjuk ini untuk memperbarui konten indeks batch.
- Di bagian Vertex AI pada Google Cloud konsol, buka bagian Deploy dan Gunakan. Pilih Vector Search
- Pilih indeks yang ingin Anda perbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. Panel edit indeks akan terbuka.
- Di kolom Cloud Storage, cari dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Pastikan kotak timpa lengkap tidak dicentang.
- 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
.
Memperbarui indeks streaming sebagian
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 untuk 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. 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 penyematan sparse dan padat untuk titik data didukung. Dalam operasi upsert, menghilangkan sematan padat akan menghapus representasi padat, dan menghilangkan sematan jarang akan menghapus representasi jarang.
Contoh ini memperbarui embedding padat dan embedding 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 sematan padat dan menghapus sematan 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 sematan jarang dan menghapus sematan padat.
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 Google Cloud console, buka halaman Vector Search.
- Pilih indeks yang ingin Anda perbarui. Halaman Info indeks 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 penyematan:
- Embedding padat: Masukkan array nilai floating point yang dipisahkan koma. Jumlah nilai harus cocok dengan dimensi indeks'.
- Embedding renggang:
- 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 jarang.
- Opsional: Untuk mengaktifkan pemfilteran menurut pembatasan token pada titik data ini, klik Tambahkan pembatasan 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, dan masukkan nilai.
- Opsional: Untuk membantu mencegah banyak hasil serupa, masukkan string tag persaingan.
- 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 sematan
Ada banyak alasan Anda mungkin perlu memperbarui pembatasan streaming atau pembatasan numerik. Misalnya, saat menangani data bervolume tinggi yang bergerak cepat, Anda mungkin ingin memprioritaskan aliran data tertentu. Pembatasan pembaruan langsung atau pembatasan numerik memungkinkan Anda mempertajam fokus secara real-time, sehingga memastikan data yang paling penting diproses atau ditandai dengan segera.
Anda dapat langsung memperbarui pembatasan titik data dan pembatasan 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 pembatasan dan pembatasan numerik yang ditetapkan dalam 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 untuk mempertahankan kesamaan antara indeks dan sumbernya di dunia nyata. Pertimbangkan penjual buku yang menggunakan penyematan vektor untuk merepresentasikan inventaris bukunya 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 Google Cloud konsol, buka bagian Deploy dan Gunakan. Pilih Vector Search
- Pilih indeks streaming yang ingin Anda perbarui. Halaman Info indeks akan terbuka.
- Pilih Edit Indeks. 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 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 mengupdate sematan 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: Google Cloud Project ID 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: Google Cloud Project ID 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 Google Cloud konsol, buka bagian Deploy dan Gunakan. Pilih Vector Search
- Pilih indeks yang ingin Anda perbarui. 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 batch update.
Update streaming: Vector Search menggunakan metrik berbasis heuristik untuk menentukan kapan harus memicu pemadatan. Jika data yang tidak dikompresi yang paling lama sudah berusia lima hari, kompresi akan selalu dipicu. Anda akan ditagih biaya pembuatan ulang indeks dengan tingkat update batch yang sama, selain biaya update streaming.
Update 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 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 angka 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, 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.