Utiliser la recherche JSON sur des documents dans Object Storage
Vous pouvez créer un index de recherche JSON sur les documents résidant dans des fichiers stockés dans Object Storage, ce qui vous permet de rechercher des champs dans vos documents JSON à l'aide de JSON_TEXTCONTAINS
, par exemple, en effectuant une recherche à l'aide de caractères génériques.
- Utilisation de la recherche JSON sur des documents dans Object Storage
Vous pouvez créer un index de recherche JSON sur des documents dans des fichiers stockés dans Object Storage. Un index de recherche JSON est spécialement conçu pour les documents JSON et vous permet d'effectuer des recherches de texte régulières et complètes sur vos documents ou fragments de vos documents à l'aide deJSON_TEXTCONTAINS
. - Création d'un index de recherche JSON sur des documents JSON dans des fichiers
UtilisezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index de recherche JSON sur les fichiers JSON stockés dans Object Storage. - Suppression d'un index de recherche JSON
Utilisez la procédureDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de recherche JSON sur les fichiers JSON stockés dans Object Storage. - Surveillance de la création d'index de recherche JSON
Lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'opération de création d'index de recherche JSON est journalisée dans la vueALL_SCHEDULER_JOB_RUN_DETAILS
. - Table de référence d'index de recherche JSON
Une table locale est créée dans la base de données avec le suffixe standardINDEX_NAME$TXTIDX
. Cette table est créée en interne lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
. - Vue de référence d'index de recherche JSON
Une vue portant le nomINDEX_NAME
est créée lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index JSON. - Table de journal des erreurs
Une table de journal des erreursindex_name$txtidx_err
est créée lorsque vous créez un index de recherche JSON sur les fichiers JSON stockés dans Object Storage.
Rubrique parent : Requêtes de recherche en texte intégral
Utiliser la recherche JSON sur des documents dans Object Storage
JSON_TEXTCONTAINS
.
Pour plus d'informations, reportez-vous à JSON_TEXTCONTAINS Condition.
Utilisez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index de recherche JSON sur les fichiers dans Object Storage. Vous pouvez configurer une fréquence d'actualisation qui indique la fréquence, en minutes, à laquelle l'index est actualisé pour les nouveaux téléchargements ou suppressions. Pour plus d'informations, reportez-vous à Création d'un index de recherche JSON sur des documents JSON dans des fichiers.
Les objets suivants sont créés lorsque vous créez un index de recherche JSON :
-
Index de recherche JSON
index_name
sur les fichiers JSON Object Storage. -
Table locale
INDEX_NAME$TXTIDX
. Cette table est la table de correspondance entre vos documents dans les fichiers dans Object Storage et l'index de recherche JSON créé dans la base de données. Pour plus d'informations, reportez-vous à Table de référence d'index de recherche JSON. -
Vue avec le nom standard
INDEX_NAME
. Vous pouvez utiliser la vue pour effectuer une recherche à l'aide deJSON_TEXTCONTAINS
. Cette vue est créée par-dessus la tableINDEX_NAME$TXTIDX
. Pour plus d'informations, reportez-vous à Vue de référence d'index de recherche JSON. -
Table de journal des erreurs avec le suffixe standard
index_name$txtidx_err
. Pour plus d'informations, reportez-vous à Table du journal des erreurs.
L'opération de création d'index de recherche JSON est journalisée dans la vue ALL_SCHEDULER_JOB_RUN_DETAILS
. Pour plus d'informations, reportez-vous à Surveiller la création d'index de texte.
Autonomous Database prend en charge la création d'index de recherche JSON pour divers fichiers texte contenant des documents JSON. Par exemple, vous pouvez indexer des fichiers JSON dans un format compressé et non compressé, ou choisir un délimiteur de document JSON différent. Pour plus d'informations sur les options de gestion des fichiers, reportez-vous à DBMS_CLOUD Package.
Pour plus d'informations, reportez-vous à Indexation avec Oracle Text.
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage
Créer un index de recherche JSON sur des documents JSON dans des fichiers
Utilisez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index de recherche JSON sur les fichiers JSON stockés dans Object Storage.
Pour plus d'informations sur les mots vides Oracle Text, reportez-vous à Indexation avec Oracle Text.
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage
Supprimer un index de recherche JSON
Utilisez la procédure DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de recherche JSON sur les fichiers JSON stockés dans Object Storage.
Exemple :
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'VCNLOGS',
);
END;
/
Cet exemple supprime l'index de recherche JSON VCNLOGS
.
Pour plus d'informations, reportez-vous à DROP_EXTERNAL_TEXT_INDEX Procédure.
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage
Surveiller la création d'index de recherche JSON
Lorsque vous exécutez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'opération de création d'index de recherche JSON est journalisée dans la vue ALL_SCHEDULER_JOB_RUN_DETAILS
.
Vous pouvez interroger la vue ALL_SCHEDULER_JOB_RUN_DETAILS
pour obtenir le statut et toute erreur signalée par le travail de création d'index.
Le nom du travail DBMS_SCHEDULER
est dérivé du paramètre INDEX_NAME
indiqué lors de l'appel de DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Pour interroger la vue ALL_SCHEDULER_JOB_RUN_DETAILS
, vous devez être connecté en tant qu'utilisateur ADMIN
ou disposer du privilège READ
sur la vue ALL_SCHEDULER_JOB_RUN_DETAILS
.
Par exemple, l'instruction SELECT
suivante avec une clause WHERE
sur job_name
affiche les détails d'exécution du travail :
SELECT status, additional_info
FROM all_scheduler_job_run_details WHERE LOWER(job_name) = LOWER('index_name$JOB');
Vous pouvez également rechercher l'existence d'un travail de planificateur de création d'index.
SELECT status
FROM all_scheduler_jobs where LOWER(job_name) = LOWER('index_name$JOB');
Pour plus d'informations, reportez-vous à CREATE_EXTERNAL_TEXT_INDEX Procédure.
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage
Table de référence d'index de recherche JSON
Une table locale est créée dans la base de données avec le suffixe standard INDEX_NAME$TXTIDX
. Cette table est créée en interne lorsque vous exécutez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Vous pouvez interroger la table INDEX_NAME$TXTIDX
pour rechercher une chaîne à l'aide du mot-clé JSON_TEXTCONTAINS
. Par exemple, lorsque vous appelez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
en tant que VNCLOGS
, la valeur INDEX_NAME
crée la table de référence d'index de recherche JSON VNCLOGS$TXTIDX
.
-
object_name
: nom de fichier sur Object Storage qui contient la chaîne de texte recherchée. -
object_path
: est l'URI de dossier ou de bucket Object Storage qui contient le fichier de stockage d'objet. -
length
: longueur du document JSON. -
offset
: décalage d'octet du début du fichier. -
mtime
: horodatage de la dernière modification du fichier de stockage d'objet. Il s'agit de l'heure à laquelle le fichier a été consulté pour la dernière fois parDBMS_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;
Cette requête fournit des informations internes sur l'emplacement des documents pertinents dans vos fichiers dans Object Storage. La requête ne fournit pas les documents réels.
Pour extraire les documents directement, utilisez la requête suivante :
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;
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage
Vue Référence de l'index de recherche JSON
Une vue portant le nom INDEX_NAME
est créée lorsque vous exécutez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index JSON.
La vue elle-même ne contient aucune donnée. Les données sont extraites dans la vue lorsque vous interrogez la vue INDEX_NAME
à l'aide de la condition SQL JSON_TEXTCONTAINS
.
Colonne | Description |
---|---|
OBJECT_NAME |
Nom de fichier sur Object Storage qui contient la chaîne de texte recherchée. |
OBJECT_PATH |
Le bucket ou l'URI de dossier Object Storage qui contient le fichier de stockage d'objet. |
LENGTH |
Longueur du document JSON. |
OFFSET |
Décalage d'octets du début du fichier. |
DATA |
Contenu du fichier Object Storage. |
FILE_LINE_JSON |
Colonne sur laquelle |
MTIME |
Horodatage de la dernière modification du fichier de stockage d'objet. Il s'agit de l'heure à laquelle le fichier a été consulté pour la dernière fois par |
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage
Table du journal des erreurs
index_name$txtidx_err
est créée lorsque vous créez un index de recherche JSON sur les fichiers JSON stockés dans Object Storage.
La table contient la liste des documents JSON non valides dans vos fichiers. Un document JSON est marqué comme non valide si la longueur du fichier source indexé dépasse la valeur par défaut ou la valeur spécifiée. La valeur par défaut est 32767
octets et la valeur maximale que vous pouvez indiquer à l'aide de l'option json_index_doc_len
format
est 200000
octets. Pour plus d'informations, reportez-vous à Création d'un index de recherche JSON sur des documents JSON dans des fichiers.
Vous pouvez interroger index_name$txtidx_err
pour obtenir la liste des fichiers JSON non valides signalés lors de la création de l'index.
Colonne | Description |
---|---|
OBJECT_NAME |
Nom de fichier sur Object Storage qui contient la chaîne de texte recherchée. |
OBJECT_PATH |
Le bucket ou l'URI de dossier Object Storage qui contient le fichier de stockage d'objet. |
OFFSET |
Décalage d'octet du début de la ligne. |
LENGTH |
Longueur du document JSON. |
LINE_NUMBER |
Numéro de ligne du fichier dans la banque d'objets. |
Rubrique parent : Utilisation de la recherche JSON sur des documents dans Object Storage