Utiliser la recherche JSON sur les documents dans Object Storage
Vous pouvez créer un index de recherche JSON sur des 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, la recherche avec des caractères génériques.
- Utilisation de la recherche JSON sur les documents dans Object Storage
Vous pouvez créer un index de recherche JSON sur les documents dans les fichiers stockés dans Object Storage. Un index de recherche JSON est spécifiquement conçu pour les documents JSON et vous permet d'effectuer des recherches 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. - Surveiller 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 d'erreurs
Une table de journal d'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 les 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 d'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 portant le nom standard
INDEX_NAME
. Vous pouvez utiliser la vue pour effectuer une recherche à l'aide deJSON_TEXTCONTAINS
. Cette vue est créée sur la tableINDEX_NAME$TXTIDX
. Pour plus d'informations, reportez-vous à Vue de référence d'index de recherche JSON. -
Table de journal d'erreurs avec le suffixe standard
index_name$txtidx_err
. Pour plus d'informations, reportez-vous à la section Error Log Table.
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 à Surveillance de la création des 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 au format compressé et non compressé, ou choisir un autre délimiteur de document JSON. Pour plus d'informations sur les options de traitement des fichiers, reportez-vous à la section DBMS_CLOUD Package.
Pour plus d'informations, reportez-vous à Indexation avec Oracle Text.
Rubrique parent : Utilisation de la recherche JSON sur les documents dans Object Storage
Créer un index de recherche JSON sur les documents JSON dans les 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 d'arrêt Oracle Text, reportez-vous à Indexation avec Oracle Text.
Rubrique parent : Utilisation de la recherche JSON sur les 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.
Par 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 à Procédure DROP_EXTERNAL_TEXT_INDEX.
Rubrique parent : Utilisation de la recherche JSON sur les 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é lorsque vous appelez 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 à Procédure CREATE_EXTERNAL_TEXT_INDEX.
Rubrique parent : Utilisation de la recherche JSON sur les 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
, la valeur INDEX_NAME
est VNCLOGS
, cela crée la table de référence d'index de recherche JSON VNCLOGS$TXTIDX
.
-
object_name
: nom du fichier sur Object Storage qui contient la chaîne de texte recherchée. -
object_path
est l'URI du dossier ou du bucket Object Storage qui contient le fichier Object Storage. -
length
: longueur du document JSON. -
offset
: décalage d'octet du début du fichier. -
mtime
: dernier horodatage modifié du fichier de stockage d'objet. Il s'agit du dernier accès au fichier 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 les documents dans Object Storage
Vue Référence d'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 du fichier sur Object Storage qui contient la chaîne de texte recherchée. |
OBJECT_PATH |
Bucket Object Storage ou URI de dossier qui contient le fichier Object Storage. |
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 |
Dernier horodatage modifié du fichier de stockage d'objet. Il s'agit du dernier accès au fichier par |
Rubrique parent : Utilisation de la recherche JSON sur les documents dans Object Storage
Table de 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 du fichier sur Object Storage qui contient la chaîne de texte recherchée. |
OBJECT_PATH |
Bucket Object Storage ou URI de dossier qui contient le fichier Object Storage. |
OFFSET |
Décalage d'octets du début de la ligne. |
LENGTH |
Longueur du document JSON. |
LINE_NUMBER |
Numéro de la ligne dans le fichier à la banque d'objets. |
Rubrique parent : Utilisation de la recherche JSON sur les documents dans Object Storage