Untuk menyiapkan aplikasi Anda untuk skala dan performa produksi, Anda perlu membuat Indeks Koleksi. Tanpa Indeks, penelusuran ANN menjadi lambat karena melakukan pemindaian brute force. Membuat Indeks membuat penelusuran terhadap kolom vektor yang diindeks menjadi sangat cepat.
Memilih metrik jarak
Memilih metrik jarak yang tepat untuk Indeks Anda sangat penting untuk mendapatkan hasil penelusuran kemiripan yang akurat dan relevan. Pilihan yang optimal bergantung terutama pada karakteristik sematan vektor dan sifat data Anda. Aturan yang paling penting adalah menggunakan metrik jarak yang digunakan untuk melatih model embedding Anda. Model embedding dioptimalkan untuk menghasilkan representasi vektor yang kesamaannya paling baik ditangkap oleh perhitungan jarak tertentu. Menggunakan metrik yang berbeda dapat menyebabkan hasil penelusuran yang tidak optimal atau salah.
Periksa dokumentasi model penyematan Anda: Ini adalah cara paling andal untuk menentukan metrik jarak yang diinginkan.
Pertimbangkan kasus penggunaan Anda: Untuk menemukan teks atau gambar yang mirip secara semantik, Kesamaan Kosinus sering kali menjadi pilihan terbaik. Jika "kekuatan" atau "intensitas" yang diwakili oleh besarnya vektor penting, pertimbangkan Jarak L2.
Analisis vektor Anda: Tentukan apakah vektor Anda dinormalisasi. Jika ya, Anda dapat menggunakan Kesamaan Kosinus atau Perkalian Titik dan mengharapkan peringkat yang serupa.
Dengan mempertimbangkan faktor-faktor ini secara cermat, Anda dapat memilih metrik jarak yang paling sesuai untuk Indeks Anda, sehingga menghasilkan hasil penelusuran kemiripan yang lebih akurat dan bermakna.
Membuat Indeks ANN
Anda dapat membuat Indeks ANN pada kolom sematan tertentu. Secara default, semua kolom string, numerik, dan boolean Objek Data didorong ke bawah ke Indeks untuk memungkinkan pemfilteran inline.
Untuk mengoptimalkan biaya komputasi, Anda dapat menentukan dengan tepat kolom mana yang harus dapat difilter (filter_fields) dan kolom mana yang hanya boleh disimpan sebagai payload saja (store_fields).
Contoh berikut menunjukkan cara membuat Indeks, INDEX_ID,
dalam Koleksi dengan ID COLLECTION_ID.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Metode HTTP dan URL:
POST https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes?indexId=INDEX_ID
Meminta isi JSON:
{
"index_field": "plot_embedding",
"filter_fields": [
"year",
"genre"
],
"store_fields": [
"title"
]
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-1770302393524-64a14a54fa197-0dea326c-5a90efda",
"metadata": {
"@type": "type.googleapis.com/google.cloud.vectorsearch.v1beta.OperationMetadata",
"createTime": "2026-02-05T14:39:53.558308609Z",
"target": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1beta"
},
"done": false
}
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud beta vector-search indexes create INDEX_ID \ --collection=COLLECTION_ID \ --index-field=plot_embedding \ --filter-fields=year,genre \ --store-fields=title \ --location=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud beta vector-search indexes create INDEX_ID ` --collection=COLLECTION_ID ` --index-field=plot_embedding ` --filter-fields=year,genre ` --store-fields=title ` --location=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta vector-search indexes create INDEX_ID ^ --collection=COLLECTION_ID ^ --index-field=plot_embedding ^ --filter-fields=year,genre ^ --store-fields=title ^ --location=LOCATION ^ --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
Created index [INDEX_ID].
Python
from google.cloud import vectorsearch_v1beta
# Create a client
client = vectorsearch_v1beta.VectorSearchServiceClient()
# Initialize request argument(s)
index = vectorsearch_v1beta.Index(
index_field="plot_embedding",
filter_fields=["year", "genre"],
store_fields=["title"],
)
request = vectorsearch_v1beta.CreateIndexRequest(
parent="projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID",
index_id="INDEX_ID",
index=index,
)
# Make the request
operation = client.create_index(request=request)
# Wait for the result (note this may take up to several minutes)
operation.result()
Dalam contoh, permintaan menentukan bahwa year dan genre dapat
difilter (diteruskan sebagai kolom filter ke indeks), dan kolom payload title
tidak dapat difilter.
Mendapatkan Indeks
Berikut menunjukkan cara mendapatkan Indeks yang ada, INDEX_ID, yang disimpan dalam
Koleksi dengan ID COLLECTION_ID.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Metode HTTP dan URL:
GET https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
"createTime": "2026-02-05T14:39:53.550302019Z",
"updateTime": "2026-02-05T14:39:53.550302019Z",
"distanceMetric": "DOT_PRODUCT",
"indexField": "plot_embedding",
"filterFields": [
"year",
"genre"
],
"storeFields": [
"title"
]
}
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud beta vector-search indexes describe INDEX_ID \ --collection=COLLECTION_ID \ --location=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud beta vector-search indexes describe INDEX_ID ` --collection=COLLECTION_ID ` --location=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta vector-search indexes describe INDEX_ID ^ --collection=COLLECTION_ID ^ --location=LOCATION ^ --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
createTime: '2026-02-05T14:39:53.550302019Z' distanceMetric: DOT_PRODUCT filterFields: - year - genre indexField: plot_embedding name: projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID storeFields: - title updateTime: '2026-02-05T14:39:53.550302019Z'
Python
from google.cloud import vectorsearch_v1beta
# Create the client
vector_search_service_client = vectorsearch_v1beta.VectorSearchServiceClient()
# Initialize request
request = vectorsearch_v1beta.GetIndexRequest(
name="projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
)
# Make the request
response = vector_search_service_client.get_index(request=request)
# Handle the response
print(response)
Mencantumkan Indeks
Contoh berikut menunjukkan cara mencantumkan semua Indeks dalam Kumpulan dengan
ID COLLECTION_ID.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Metode HTTP dan URL:
GET https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"indexes": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
"createTime": "2026-02-05T14:39:53.550302019Z",
"updateTime": "2026-02-05T14:39:53.550302019Z",
"distanceMetric": "DOT_PRODUCT",
"indexField": "plot_embedding",
"filterFields": [
"year",
"genre"
],
"storeFields": [
"title"
]
}
]
}
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud beta vector-search indexes list \ --collection=COLLECTION_ID \ --location=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud beta vector-search indexes list ` --collection=COLLECTION_ID ` --location=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta vector-search indexes list ^ --collection=COLLECTION_ID ^ --location=LOCATION ^ --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
--- createTime: '2026-02-05T14:39:53.550302019Z' distanceMetric: DOT_PRODUCT filterFields: - year - genre indexField: plot_embedding name: projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID storeFields: - title updateTime: '2026-02-05T14:39:53.550302019Z'
Python
from google.cloud import vectorsearch_v1beta
# Create the client
vector_search_service_client = vectorsearch_v1beta.VectorSearchServiceClient()
# Initialize request
request = vectorsearch_v1beta.ListIndexesRequest(
parent="projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID",
)
# Make the request
page_result = vector_search_service_client.list_indexes(request=request)
# Handle the response
for response in page_result:
print(response)
Menghapus Indeks
Contoh berikut menunjukkan cara menghapus Index yang ada, INDEX_ID, dari Koleksi dengan ID COLLECTION_ID.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Metode HTTP dan URL:
DELETE https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-1770303323075-64a14dcb7734e-eb6a75d5-6798cef3",
"metadata": {
"@type": "type.googleapis.com/google.cloud.vectorsearch.v1beta.OperationMetadata",
"createTime": "2026-02-05T14:55:23.086771813Z",
"target": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1beta"
},
"done": false
}
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- COLLECTION_ID: ID koleksi.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda. Google Cloud
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud beta vector-search indexes delete INDEX_ID \ --collection=COLLECTION_ID \ --location=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud beta vector-search indexes delete INDEX_ID ` --collection=COLLECTION_ID ` --location=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta vector-search indexes delete INDEX_ID ^ --collection=COLLECTION_ID ^ --location=LOCATION ^ --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
Deleted index [INDEX_ID].
Python
from google.cloud import vectorsearch_v1beta
# Create the client
vector_search_service_client = vectorsearch_v1beta.VectorSearchServiceClient()
# Initialize request
request = vectorsearch_v1beta.DeleteIndexRequest(
name="projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
)
# Make the request
operation = vector_search_service_client.delete_index(request=request)
# Wait for the result (note this may take up to several minutes)
operation.result()
Apa langkah selanjutnya?
- Pelajari cara membuat kueri Objek Data.
- Pelajari cara menelusuri Objek Data menggunakan penelusuran semantik atau penelusuran campuran.