Usa ricerca full-text nei file nello storage degli oggetti
Il package PL/SQL DBMS_CLOUD consente di creare un indice di testo nei file dell'area di memorizzazione degli oggetti, che consente di cercare il testo e utilizzare i caratteri jolly con la ricerca.
- Informazioni sulla ricerca full-text nei file nello storage degli oggetti
È possibile creare un indice di testo nei file nello storage degli oggetti. Un indice di testo consente di eseguire una ricerca basata su parole in set di dati molto grandi nell'area di memorizzazione degli oggetti. - Creare un indice di testo nei file di storage degli oggetti
UtilizzareDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice di testo nei file nello storage degli oggetti. - Eliminare un indice nei file di storage cloud
Utilizzare la proceduraDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
per eliminare un indice di testo nei file di storage degli oggetti. - Tabella di riferimento dell'indice di testo
Una tabella locale viene creata nel database con un suffisso standardINDEX_NAME$TXTIDX
. Questa tabella viene creata internamente quando si esegueDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
. - Monitora creazione indice di testo
Quando si esegueDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'operazione di creazione dell'indice di testo viene registrata nella vistaALL_SCHEDULER_JOB_RUN_DETAILS
.
Argomento padre: Query di ricerca testo completo
Informazioni sulla ricerca full-text nei file nello storage degli oggetti
DBMS_CLOUD
offre modi rapidi ed efficienti per gestire i dati nell'area di memorizzazione degli oggetti. Le API DBMS_CLOUD
consentono di creare, copiare, scaricare, eliminare e attraversare i file presenti nell'area di memorizzazione degli oggetti. Quando si definiscono tabelle esterne, è possibile eseguire query SQL sui dati memorizzati nell'area di memorizzazione degli oggetti (o con tabelle esterne con partizionamento ibrido, tra i dati del database e nell'area di memorizzazione degli oggetti). Quando si utilizza DBMS_CLOUD
per definire un indice di testo, è possibile cercare testo nei dati e utilizzare caratteri jolly.
Il supporto di Autonomous Database per la ricerca basata su parole funziona per formati di dati comunemente utilizzati, ad esempio CSV o JSON e con documenti formattati (binari), ad esempio formati PDF e DOC (MS Word). È possibile configurare una frequenza di aggiornamento che indichi la frequenza in minuti alla quale l'indice viene aggiornato per eventuali nuovi caricamenti o eliminazioni.
Una tabella locale con il suffisso standard INDEX_NAME$TXTIDX
viene creata quando si crea un indice nello storage degli oggetti ed è possibile utilizzare la tabella per eseguire una ricerca utilizzando la parola chiave CONTAINS
.
Per ulteriori informazioni, vedere Indicizzazione con Oracle Text.
Argomento padre: Usa ricerca full-text nei file nello storage degli oggetti
Creare un indice di testo nei file di storage degli oggetti
Utilizzare DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice di testo sui file nello storage degli oggetti.
I documenti formattati (binari) sono supportati quando si specifica l'opzione binary_files
format
con DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
È possibile includere un elenco di stop word quando si specifica l'opzione stop_words
format
con DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Per ulteriori informazioni sulle stopword di Oracle Text e sull'utilizzo dei file binari, vedere Indicizzazione con Oracle Text.
Argomento padre: Usa ricerca full-text nei file nello storage degli oggetti
Rilasciare un indice nei file di storage cloud
Utilizzare la procedura DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
per eliminare un indice di testo nei file di storage degli oggetti.
Eseguire la procedura DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
per eliminare un indice di testo nei file nello storage degli oggetti.
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
In questo esempio viene eliminato l'indice di testo EMP
.
Per ulteriori informazioni, vedere DROP_EXTERNAL_TEXT_INDEX Procedure.
Argomento padre: Usa ricerca full-text nei file nello storage degli oggetti
Tabella di riferimento indice di testo
Viene creata una tabella locale all'interno del database con suffisso standard INDEX_NAME$TXTIDX
. Questa tabella viene creata internamente quando si esegue DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
È possibile eseguire una query sulla tabella INDEX_NAME$TXTIDX
per cercare una stringa utilizzando la parola chiave CONTAINS
. Ad esempio, quando si chiama la procedura DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
il valore INDEX_NAME
come EMP
, questa operazione crea la tabella di riferimento del testo EMP$TXTIDX
.
-
object_name
: il nome del file nello storage degli oggetti che contiene la stringa di testo cercata. -
object_path
: è il bucket di storage degli oggetti o l'URI della cartella che contiene il file di storage degli oggetti. -
mtime
: è l'indicatore orario dell'ultima modifica del file di storage degli oggetti. Ora dell'ultimo accesso al file da parte diDBMS_CLOUD
.
SELECT object_path, object_name FROM EMP$TXTIDX WHERE CONTAINS(OBJECT_NAME, 'king') > 0;
OBJECT_PATH OBJECT_NAME
------------------------------------------------------------------------------------------ ------------------------------------
https://objectstorage.us-phoenix-1.oraclecloud.com/n/example1/b/adbs_data_share/o/ts_data/ data_2_20221026T195313585601Z.json
Questa query restituisce i nomi file e l'URI posizione nello storage degli oggetti che contiene la stringa di testo king
, in maiuscolo o in minuscolo.
SELECT object_name, mtime FROM EMP$TXTIDX;
OBJECT_NAME MTIME
----------------------------- -------------------------------------
data_1_20220531T165402Z.json 31-MAY-22 04.54.02.979000 PM +00:00
data_1_20220531T165427Z.json 31-MAY-22 04.54.27.997000 PM +00:00
Questa query restituisce il nome del file e l'indicatore orario dell'ultima modifica dei file oggetto in cui viene creato l'indice EMP
.
Argomento padre: Usa ricerca full-text nei file nello storage degli oggetti
Monitora creazione indice di testo
Quando si esegue DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'operazione di creazione dell'indice di testo viene registrata nella vista ALL_SCHEDULER_JOB_RUN_DETAILS
.
È possibile eseguire una query sulla vista ALL_SCHEDULER_JOB_RUN_DETAILS
per ottenere lo stato e qualsiasi errore segnalato dal job di creazione dell'indice.
Il nome del job DBMS_SCHEDULER
deriva dal parametro INDEX_NAME
specificato quando si chiama DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Per eseguire una query sulla vista ALL_SCHEDULER_JOB_RUN_DETAILS
, è necessario aver eseguito il login come utente ADMIN
o disporre del privilegio READ
nella vista ALL_SCHEDULER_JOB_RUN_DETAILS
.
Ad esempio, l'istruzione SELECT
seguente con una clausola WHERE
in job_name
mostra i dettagli di esecuzione per il job:
SELECT status, additional_info
FROM all_scheduler_job_run_details WHERE LOWER(job_name) = LOWER('index_name$JOB');
È inoltre possibile eseguire una query per verificare l'esistenza di un job scheduler di creazione indice.
SELECT status
FROM all_scheduler_jobs where LOWER(job_name) = LOWER('index_name$JOB');
Per ulteriori informazioni, vedere CREATE_EXTERNAL_TEXT_INDEX Procedure.
Argomento padre: Usa ricerca full-text nei file nello storage degli oggetti