Ricerca di oggetti di dati

Lo scopo dell'API Search è trovare oggetti di dati simili a una query specificata e restituire un elenco di risultati classificati (in base alla somiglianza). L'API Search supporta anche il filtraggio.

L'API Search offre diversi modi per cercare oggetti di dati: ricerca vettoriale, ricerca a testo intero e ricerca semantica. Inoltre, è possibile combinare più ricerche di qualsiasi tipo per ottenere una ricerca ibrida.

La ricerca vettoriale ti consente di fornire il tuo vettore di query. Questo è il metodo obbligatorio per la ricerca di campi di incorporamento che non hanno un embedding-config. Se vengono forniti più campi search_vector, i risultati vengono combinati utilizzando pesi uguali.

L'esempio seguente mostra come eseguire una ricerca vettoriale in una raccolta con l'ID movies.

curl -X POST \
'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/movies/dataObjects:search' \
  -H 'Bearer $(gcloud auth print-access-token)' \
  -H 'Content-Type: application/json' \
  -d '{ \
    "vector_search": { \
      "search_field": "plot_embedding", \
      "vector": { \
        "values": [ \
          0.42426406871192845, \
          0.565685424949238, \
          0.7071067811865475 \
        ] \
      }, \
      "filter": { \
        "genre": { \
          "$eq": "Thriller" \
        } \
      }, \
      "top_k": 5, \
      "output_fields": { \
        "data_fields": "*", \
        "vector_fields": "*", \
        "metadata_fields": "*" \
      } \
    } \
  }'

Esegue la ricerca a testo intero senza vettori sparsi. Il dialetto della query "parola" predefinito considera l'intero input come singoli termini di ricerca con un operatore AND implicito. Puoi impostare enhanced_query su true per espandere i termini di ricerca, gestire le variazioni morfologiche, rimuovere le stop word e consentire operatori di ricerca aggiuntivi:

  • OR: un operatore di disgiunzione sensibile alle maiuscole che corrisponde ai documenti contenenti almeno uno dei termini specificati. Si applica solo ai due termini adiacenti.

  • ": (virgolette doppie) per la ricerca di frasi.

  • -: l'operatore di negazione. Esclude i documenti che contengono i termini che lo precedono.

Questa ricerca converte la query di testo in embedding per trovare risultati basati sul significato semantico. Utilizza embedding-config definito nello schema per generare l'incorporamento della query. Se vengono forniti più campi search_vector, i risultati vengono combinati utilizzando pesi uguali.

Utilizza batch_search_data_objects per eseguire più ricerche in parallelo (ricerca vettoriale, ricerca di testo e ricerca semantica) e, facoltativamente, combinare e classificare i risultati utilizzando un classificatore.

Sono disponibili i seguenti Ranker:

  • ReciprocalRankFusion: unisce i set di risultati utilizzando l'algoritmo Reciprocal Rank Fusion (RFF).

  • VertexRanker: utilizza l'API Vertex Ranking per unire e classificare i risultati.