Usa ricerca JSON nei documenti nello storage degli oggetti
Puoi creare un indice di ricerca JSON sui documenti che risiedono nei file memorizzati nello storage degli oggetti, che ti consente di cercare i campi nei tuoi documenti JSON utilizzando JSON_TEXTCONTAINS
, ad esempio, la ricerca con caratteri jolly.
- Usa ricerca JSON nei documenti nello storage degli oggetti
È possibile creare un indice di ricerca JSON nei documenti nei file memorizzati nello storage degli oggetti. Un indice di ricerca JSON è specificamente progettato per i documenti JSON e consente di eseguire una ricerca regolare e completa di testo sui documenti o frammenti dei documenti utilizzandoJSON_TEXTCONTAINS
. - Creare un indice di ricerca JSON nei documenti JSON nei file
UtilizzareDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice di ricerca JSON nei file JSON memorizzati nello storage degli oggetti. - Eliminare un indice di ricerca JSON
Utilizzare la proceduraDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
per eliminare un indice di ricerca JSON nei file JSON memorizzati nello storage degli oggetti. - Monitora creazione indice di ricerca JSON
Quando si esegueDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'operazione di creazione dell'indice di ricerca JSON viene registrata nella vistaALL_SCHEDULER_JOB_RUN_DETAILS
. - Tabella di riferimento dell'indice di ricerca JSON
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
. - Vista di riferimento dell'indice di ricerca JSON
Una vista denominataINDEX_NAME
viene creata quando si esegueDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice JSON. - Tabella di log degli errori
Quando si crea un indice di ricerca JSON nei file JSON memorizzati nello storage degli oggetti, viene creata una tabella di log degli erroriindex_name$txtidx_err
.
Argomento padre: Query di ricerca testo completo
Usa ricerca JSON nei documenti nello storage degli oggetti
JSON_TEXTCONTAINS
.
Per ulteriori informazioni, vedere JSON_TEXTCONTAINS Condizione.
Utilizzare DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice di ricerca JSON nei file nello storage degli oggetti. È possibile configurare una frequenza di aggiornamento che indichi la frequenza in minuti alla quale l'indice viene aggiornato per eventuali nuovi caricamenti o eliminazioni. Per ulteriori informazioni, vedere Creare un indice di ricerca JSON nei documenti JSON nei file.
Quando si crea un indice di ricerca JSON, vengono creati gli oggetti seguenti:
-
Indice di ricerca JSON
index_name
nei file JSON dello storage degli oggetti. -
Tabella locale
INDEX_NAME$TXTIDX
. Questa tabella è la tabella di mapping tra i documenti nei file nello storage degli oggetti e l'indice di ricerca JSON creato nel database. Per ulteriori informazioni, vedere Tabella di riferimento degli indici di ricerca JSON. -
Vista con il nome standard
INDEX_NAME
. È possibile utilizzare la vista per eseguire una ricerca utilizzandoJSON_TEXTCONTAINS
. Questa vista viene creata sopra la tabellaINDEX_NAME$TXTIDX
. Per ulteriori informazioni, vedere Vista riferimento indice di ricerca JSON. -
Tabella di log degli errori con il suffisso standard
index_name$txtidx_err
. Per ulteriori informazioni, vedere Tabella Log errori.
L'operazione di creazione dell'indice di ricerca JSON viene registrata nella vista ALL_SCHEDULER_JOB_RUN_DETAILS
. Per ulteriori informazioni, vedere Controlla creazione indice di testo.
Autonomous Database supporta la creazione dell'indice di ricerca JSON per una vasta gamma di file di testo contenenti documenti JSON. Ad esempio, è possibile indicizzare i file JSON sia in formato compresso che non compresso oppure scegliere un delimitatore di documento JSON diverso. Per ulteriori informazioni sulle opzioni di gestione dei file, vedere DBMS_CLOUD Package.
Per ulteriori informazioni, vedere Indicizzazione con Oracle Text.
Argomento padre: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti
Creare un indice di ricerca JSON nei documenti JSON nei file
Utilizzare DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice di ricerca JSON nei file JSON memorizzati nello storage degli oggetti.
Per ulteriori informazioni sulle stopword di Oracle Text, vedere Indicizzazione con Oracle Text.
Argomento padre: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti
Elimina un indice di ricerca JSON
Utilizzare la procedura DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
per eliminare un indice di ricerca JSON nei file JSON memorizzati nello storage degli oggetti.
Ad esempio:
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'VCNLOGS',
);
END;
/
In questo esempio viene eliminato l'indice di ricerca JSON VCNLOGS
.
Per ulteriori informazioni, vedere DROP_EXTERNAL_TEXT_INDEX Procedure.
Argomento padre: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti
Monitora creazione indice di ricerca JSON
Quando si esegue DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'operazione di creazione dell'indice di ricerca JSON 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: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti
Tabella di riferimento indice di ricerca JSON
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 JSON_TEXTCONTAINS
. Ad esempio, quando si chiama la procedura DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
il valore INDEX_NAME
come VNCLOGS
, viene creata la tabella di riferimento dell'indice di ricerca JSON VNCLOGS$TXTIDX
.
-
object_name
: il nome 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. -
length
: indica la lunghezza del documento JSON. -
offset
: è l'offset byte dell'inizio del file. -
mtime
: è l'indicatore orario dell'ultima modifica del file di storage degli oggetti. Ora dell'ultimo accesso al file da parte diDBMS_CLOUD
.
SELECT * FROM (SELECT object_name, object_path, length, offset
FROM vnclogs$txtidx
WHERE JSON_TEXTCONTAINS (file_line_json, '$.tuples', '{XXX.XXX.0.1.10.10.10.10.null.XXX_345}')
ORDER BY mtime DESC)
WHERE rownum < 3;
Questa query fornisce informazioni interne sulla posizione dei file nello storage degli oggetti in cui si trovano i documenti pertinenti. La query non fornisce i documenti effettivi.
Per recuperare direttamente i documenti, utilizzare la query riportata di seguito.
SELECT * FROM (SELECT object_name, object_path, data
FROM vnclogs
WHERE JSON_TEXTCONTAINS (file_line_json, '$.tuples', '{XXX.XXX.0.1.10.10.10.10.null.XXX_345}')
ORDER BY mtime DESC)
WHERE rownum < 3;
Argomento padre: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti
Vista riferimento indice di ricerca JSON
Una vista denominata INDEX_NAME
viene creata quando si esegue DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
per creare un indice JSON.
La vista stessa non contiene dati. I dati vengono recuperati nella vista quando si esegue una query sulla vista INDEX_NAME
utilizzando la condizione SQL JSON_TEXTCONTAINS
.
Colonna | Descrizione |
---|---|
OBJECT_NAME |
Nome file nello storage degli oggetti che contiene la stringa di testo cercata. |
OBJECT_PATH |
Bucket di storage degli oggetti o URI cartella contenente il file di storage degli oggetti. |
LENGTH |
Lunghezza del documento JSON. |
OFFSET |
Offset in byte dell'inizio del file. |
DATA |
Contenuto del file di storage degli oggetti. |
FILE_LINE_JSON |
La colonna su cui viene eseguito |
MTIME |
Indicatore orario dell'ultima modifica del file di storage degli oggetti. Ora dell'ultimo accesso al file da parte di |
Argomento padre: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti
Tabella di log errori
index_name$txtidx_err
.
La tabella contiene una lista dei documenti JSON non validi nei file. Un documento JSON è contrassegnato come non valido se la lunghezza del file di origine indicizzato supera il valore predefinito o il valore specificato. Il valore predefinito è 32767
byte e il valore massimo che è possibile specificare utilizzando l'opzione json_index_doc_len
format
è 200000
byte. Per ulteriori informazioni, vedere Creare un indice di ricerca JSON nei documenti JSON nei file.
È possibile eseguire una query su index_name$txtidx_err
per ottenere la lista dei file JSON non validi segnalati durante la creazione dell'indice.
Colonna | Descrizione |
---|---|
OBJECT_NAME |
Nome file nello storage degli oggetti che contiene la stringa di testo cercata. |
OBJECT_PATH |
Bucket di storage degli oggetti o URI cartella contenente il file di storage degli oggetti. |
OFFSET |
Offset byte all'inizio della riga. |
LENGTH |
Lunghezza del documento JSON. |
LINE_NUMBER |
Numero riga nel file nell'area di memorizzazione degli oggetti. |
Argomento padre: Utilizzare la ricerca JSON nei documenti nello storage degli oggetti