Per scoprire di più su cos'è l'assistenza vettoriale e su come funziona, consulta la panoramica dell'assistenza vettoriale.
Prima di iniziare
Verifica che l'istanza AlloyDB Omni esegua la versione 18.1.0 o successiva. Per ulteriori informazioni sull'upgrade, consulta Gestisci AlloyDB Omni.
Attiva l'estensione di assistenza vettoriale utilizzando il seguente comando nel database che vuoi utilizzare:
CREATE EXTENSION vector_assist CASCADE;In questo modo viene generato lo schema
vector_assist, utilizzato dall'assistente vettoriale.
Utilizza l'assistente vettoriale per eseguire il deployment di un workload vettoriale
Per utilizzare l'assistente vettoriale per eseguire il deployment e gestire un workload vettoriale, devi:
- Definisci la specifica del vettore
- Visualizza i suggerimenti di Vector Assist
- Applica i suggerimenti di Vector Assist
Definisci la specifica del vettore
La definizione della specifica vettoriale è il primo passaggio per l'utilizzo dell'assistenza vettoriale. A seconda del tipo di workload vettoriale, i campi che utilizzi per definire la specifica vettoriale potrebbero essere diversi.
Ad esempio, se vuoi attivare la ricerca semantica su una colonna specifica di una tabella, esegui la funzione vector_assist.define_spec per definire la specifica vettoriale:
SELECT
recommendation_id,
REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
recommendation,
vector_spec_id,
table_name,
applied,
modified
FROM vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
Sostituisci i seguenti parametri:
TABLE_NAME: il nome della tabella che vuoi utilizzare nel workload vettoriale.(Facoltativo)
VECTOR_COLUMN_NAME: la colonna su cui vuoi eseguire una ricerca semantica. Se nella tabella è presente una sola colonna con vettori,vector_assistpuò impostarla automaticamente. Se è presente più di una colonna con vettori, devi specificare quale colonna utilizzare.(Facoltativo)
TARGET_RECALL: il recall target che vuoi che l'assistente vettoriale soddisfi. Se specificato,vector_assistsperimenta con diversi valorief_search, confrontando il recall nelle ricerche esatte dei vicini più prossimi.vector_assistimpostaef_searchsul valore che fornisce il richiamo target più vicino. Il valore predefinito è0.95.(Facoltativo)
TUNE_INDEX: valore booleano che specifica se l'assistente vettoriale ottimizza gli indici vettoriali nel tuo workload. Il valore predefinito èfalse, il che significa che vengono ottimizzati solo i parametri relativi alla ricerca (ef_search); i parametri relativi al tempo di build (m,ef_construction) non vengono ottimizzati.
Per visualizzare un elenco completo di tutti i parametri disponibili per la specifica vettoriale, consulta i riferimenti alle funzioni di assistenza vettoriale.
Dopo aver eseguito la query per creare la specifica vettoriale, l'assistenza vettoriale genera automaticamente i passaggi, chiamati suggerimenti, che devi eseguire per eseguire il deployment del workload vettoriale.
Visualizza i suggerimenti di Vector Assist
Per visualizzare i suggerimenti generati dall'assistente vettoriale utilizzando la specifica vettoriale, esegui la funzione vector_assist.get_recommendations:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
Sostituisci SPEC_ID con l'ID della specifica vettoriale per cui vuoi visualizzare i suggerimenti. Per ottenere l'elenco delle specifiche vettoriali disponibili, consulta Elenca le specifiche vettoriali.
vector_assist.get_recommendations restituisce una tabella denominata vector_assist.RECOMMENDATIONS che contiene tutti i suggerimenti. Ogni suggerimento viene archiviato in una tabella con il spec_id associato. Ogni
suggerimento contiene in genere le seguenti informazioni:
- Query SQL da eseguire
- Spiegazione dettagliata del suggerimento
- Altre informazioni pertinenti che spiegano il suggerimento
Applica i suggerimenti di Vector Assist
Puoi applicare i suggerimenti generati singolarmente o tutti insieme.
Per applicare un suggerimento specifico, esegui la funzione vector_assist.apply_recommendation:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENDATION_ID'
);
Sostituisci RECOMMENDATION_ID con l'ID del suggerimento di assistenza vettoriale che vuoi applicare dalla tabella vector_assist.RECOMMENDATIONS.
Per applicare tutti i suggerimenti contemporaneamente, esegui la funzione vector_assist.apply_spec con il parametro spec_id o table_name:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID'
);
Sostituisci SPEC_ID con l'ID della specifica vettoriale che vuoi utilizzare.
Se vuoi, puoi anche inserire i parametri schema_name o column_name.
Per informazioni su tutti parametri di ricerca disponibili, consulta i riferimenti alle funzioni di assistenza vettoriale.
Una volta applicati i suggerimenti generati dall'assistente vettoriale, l'indice vettoriale è pronto per l'uso.
Genera query di ricerca
Puoi utilizzare l'assistente vettoriale per creare query di ricerca ottimizzate per i workload vettoriali di cui hai eseguito il deployment utilizzando la specifica vettoriale del workload e l'indice vettoriale generato. Per generare una query di ricerca ottimizzata, esegui la funzione vector_assist.generate_query:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
search_vector => 'SEARCH_VECTOR',
top_k => TOP_K,
target_recall => TARGET_RECALL,
filter_expression => 'FILTER_EXPRESSION'
);
Sostituisci i seguenti parametri:
SPEC_ID: l'ID della specifica che vuoi utilizzare.SEARCH_VECTOR: vettore per la query di ricerca. Ad esempio,[1, 2, 3].(Facoltativo)
TOP_K: numero di vicini più prossimi da restituire. Se non specificato, il valore predefinito è10.(Facoltativo)
TARGET_RECALL: il recall target che vuoi che l'assistente vettoriale soddisfi. Se specificato,vector_assistsperimenta con diversi valorief_search, confrontando il recall nelle ricerche esatte dei vicini più prossimi.vector_assistimpostaef_searchsul valore che fornisce il richiamo target più vicino.(Facoltativo)
FILTER_EXPRESSION: eventuali filtri per la query di ricerca. Ad esempio, il filtro in base ad altre colonne.
Per visualizzare un elenco completo di tutti i parametri disponibili per la generazione di una query di ricerca, consulta i riferimenti alle funzioni di assistenza vettoriale.
L'output di questa funzione restituisce un testo che contiene una query SQL. Puoi eseguire o salvare questa query SQL in base alle tue esigenze.
Elenca le tue specifiche vettoriali
Se devi elencare una singola specifica vettoriale o tutte le specifiche vettoriali esistenti, esegui
la funzione vector_assist.list_specs:
SELECT vector_assist.list_specs(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME'
);
Sostituisci i seguenti parametri:
(Facoltativo)
SPEC_ID: l'ID della specifica vettoriale che vuoi utilizzare.TABLE_NAME: il nome della tabella che hai utilizzato per definire la specifica vettoriale.
Passaggi successivi
- Scopri di più su Vector Assist.
- Riferimenti alle funzioni di assistenza vettoriale.