Sammlungsindexe

Um Ihre Anwendung für die Produktionsskalierung und -leistung vorzubereiten, müssen Sie Sammlungsindizes erstellen. Ohne Index sind ANN-Suchanfragen langsam, da sie einen Brute-Force-Scan durchführen. Durch das Erstellen eines Index werden Suchanfragen für die indexierten Vektorfelder sehr schnell ausgeführt.

Distanzmesswert auswählen

Die Auswahl des richtigen Distanzmesswerts für Ihren Index ist entscheidend, um genaue und relevante Ähnlichkeitssuchergebnisse zu erzielen. Die optimale Wahl hängt in erster Linie von den Merkmalen Ihrer Vektoreinbettungen und der Art Ihrer Daten ab. Die wichtigste Regel ist, den Distanzmesswert zu verwenden, mit dem Ihr Einbettungsmodell trainiert wurde. Einbettungsmodelle sind darauf optimiert, Vektordarstellungen zu erstellen, bei denen die Ähnlichkeit am besten durch eine bestimmte Distanzberechnung erfasst wird. Die Verwendung eines anderen Messwerts kann zu suboptimalen oder falschen Suchergebnissen führen.

  • Dokumentation Ihres Einbettungsmodells prüfen:Dies ist die zuverlässigste Methode, um die vorgesehene Distanzmessung zu ermitteln.

  • Anwendungsfall berücksichtigen:Wenn Sie semantisch ähnliche Texte oder Bilder finden möchten, ist die Kosinusähnlichkeit oft die beste Wahl. Wenn die „Stärke“ oder „Intensität“ wichtig ist, die durch die Größe des Vektors dargestellt wird, sollten Sie die L2-Distanz in Betracht ziehen.

  • Vektoren analysieren:Prüfen Sie, ob Ihre Vektoren normalisiert sind. Wenn das der Fall ist, können Sie entweder die Kosinus-Ähnlichkeit oder das Punktprodukt verwenden und ein ähnliches Ranking erwarten.

Wenn Sie diese Faktoren sorgfältig berücksichtigen, können Sie den am besten geeigneten Distanzmesswert für Ihren Index auswählen und so genauere und aussagekräftigere Ergebnisse für die Ähnlichkeitssuche erzielen.

ANN-Index erstellen

Sie können einen ANN-Index für ein bestimmtes Einbettungsfeld erstellen. Standardmäßig werden alle String-, numerischen und booleschen Felder des Datenobjekts an den Index übertragen, um Inline-Filterung zu ermöglichen.

Um die Compute-Kosten zu optimieren, können Sie genau angeben, welche Felder filterbar sein sollen (filter_fields) und welche nur als Nutzlast gespeichert werden sollen (store_fields).

Im folgenden Beispiel wird gezeigt, wie Sie in einer Sammlung mit der ID COLLECTION_ID einen Index INDEX_ID erstellen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • INDEX_ID: Die ID des Index.
  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

HTTP-Methode und URL:

POST https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes?indexId=INDEX_ID

JSON-Text anfordern:

{
    "index_field": "plot_embedding",
    "filter_fields": [
      "year",
      "genre"
    ],
    "store_fields": [
      "title"
    ]
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • INDEX_ID: Die ID des Index.
  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

Führen Sie folgenden Befehl aus:

Linux, macOS oder 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

Sie sollten eine Antwort ähnlich der folgenden erhalten:

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()

Im Beispiel wird angegeben, dass year und genre filterbar sind (als Filterfelder an den Index übergeben werden) und das Nutzlastfeld title nicht filterbar ist.

Index abrufen

Im Folgenden wird gezeigt, wie Sie einen vorhandenen Index (INDEX_ID) abrufen, der in einer Sammlung mit der ID COLLECTION_ID gespeichert ist.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • INDEX_ID: Die ID des Index.
  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

HTTP-Methode und URL:

GET https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • INDEX_ID: Die ID des Index.
  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

Führen Sie folgenden Befehl aus:

Linux, macOS oder 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

Sie sollten eine Antwort ähnlich der folgenden erhalten:

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)

Indexe auflisten

Im folgenden Beispiel wird gezeigt, wie alle Indexe in einer Sammlung mit der ID COLLECTION_ID aufgelistet werden.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

HTTP-Methode und URL:

GET https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

Führen Sie folgenden Befehl aus:

Linux, macOS oder 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

Sie sollten eine Antwort ähnlich der folgenden erhalten:

---
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)

Index löschen

Das folgende Beispiel zeigt, wie Sie einen vorhandenen Index INDEX_ID aus einer Sammlung mit der ID COLLECTION_ID löschen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • INDEX_ID: Die ID des Index.
  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

HTTP-Methode und URL:

DELETE https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • INDEX_ID: Die ID des Index.
  • COLLECTION_ID: Die ID der Sammlung.
  • LOCATION: Die Region, in der Sie Vertex AI verwenden.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.

Führen Sie folgenden Befehl aus:

Linux, macOS oder 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

Sie sollten eine Antwort ähnlich der folgenden erhalten:

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()

Nächste Schritte