Utiliser la recherche JSON sur des documents dans le stockage d'objets
Vous pouvez créer un index de recherche JSON sur des documents résidant dans des fichiers stockés dans le stockage d'objets, ce qui vous permet de rechercher des champs dans vos documents JSON à l'aide de JSON_TEXTCONTAINS, par exemple, une recherche avec des caractères génériques.
- Utiliser la recherche JSON sur des documents dans le stockage d'objets
Vous pouvez créer un index de recherche JSON sur les documents dans les fichiers stockés dans le stockage d'objets. Un index de recherche JSON est spécialement conçu pour les documents JSON et vous permet d'effectuer une recherche régulière et en texte intégral sur vos documents ou fragments de vos documents à l'aide deJSON_TEXTCONTAINS. - Créer un index de recherche JSON sur des documents JSON dans des fichiers
UtilisezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEXpour créer un index de recherche JSON sur les fichiers JSON stockés dans le stockage d'objets. - Supprimer un index de recherche JSON
Utilisez la procédureDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEXpour supprimer un index de recherche JSON sur les fichiers JSON stockés dans le stockage d'objets. - Surveiller la création de l'index de recherche JSON
Lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX, l'opération de création de l'index de recherche JSON est enregistrée dans la vueALL_SCHEDULER_JOB_RUN_DETAILS. - Table de référence sur l'index de recherche JSON
Une table locale est créée dans votre 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 de l'index de recherche JSON
Une vue portant le nomINDEX_NAMEest créée lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEXpour créer un index JSON. - Table de journal des erreurs
Une table de journal des erreursindex_name$txtidx_errest créée lorsque vous créez un index de recherche JSON sur les fichiers JSON stockés dans le stockage d'objets.
Rubrique parent : Interrogations de recherche en texte intégral
Utiliser la recherche JSON sur des documents dans le stockage d'objets
JSON_TEXTCONTAINS.
Pour plus d'informations, voir ConditionJSON_TEXTCONTAINS.
Vous utilisez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX pour créer un index de recherche JSON sur les fichiers du service de stockage d'objets. Vous pouvez configurer un taux d'actualisation qui indique la fréquence en minutes à laquelle l'index est actualisé pour les nouveaux chargements ou suppressions. Pour plus d'informations, voir Créer 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 :
-
Un index de recherche JSON
index_namesur les fichiers JSON du service de stockage d'objets. -
Un tableau local
INDEX_NAME$TXTIDX. Cette table est la table de mappage entre vos documents dans les fichiers du service de stockage d'objets et l'index de recherche JSON créé dans la base de données. Pour plus d'informations, voir Table de référence sur l'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 au-dessus de la tableINDEX_NAME$TXTIDX. Pour plus d'informations, voir Vue de référence de l'index de recherche JSON. -
Table du journal des erreurs avec le suffixe standard
index_name$txtidx_err. Pour plus d'informations, voir Table du journal des erreurs.
L'opération de création de l'index de recherche JSON est enregistrée dans la vue ALL_SCHEDULER_JOB_RUN_DETAILS. Pour plus d'informations, voir Surveiller la création de l'index texte.
Autonomous AI 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 autre délimiteur de document JSON. Pour plus d'informations sur les options de traitement des fichiers, voir Ensemble DBMS_CLOUD.
Pour plus d'informations, voir Indexation avec Oracle Text.
Rubrique parent : Utiliser la recherche JSON sur des documents dans le stockage d'objets
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 le stockage d'objets.
Voir Indexation avec Oracle Text pour plus d'informations sur les mots vides d'Oracle Text.
Rubrique parent : Utiliser la recherche JSON sur des documents dans le stockage d'objets
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 le stockage d'objets.
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, voir ProcédureDROP_EXTERNAL_TEXT_INDEX.
Rubrique parent : Utiliser la recherche JSON sur des documents dans le stockage d'objets
Surveiller la création de l'index de recherche JSON
Lorsque vous exécutez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX, l'opération de création de l'index de recherche JSON est enregistré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 la tâche de création d'index.
Le nom de la tâche DBMS_SCHEDULER est dérivé du paramètre INDEX_NAME spécifié 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'énoncé SELECT suivant avec une clause WHERE sur job_name affiche les détails d'exécution de la tâche :
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 du programmateur de création d'index.
SELECT status
FROM all_scheduler_jobs where LOWER(job_name) = LOWER('index_name$JOB');Pour plus d'informations, voir ProcédureCREATE_EXTERNAL_TEXT_INDEX.
Rubrique parent : Utiliser la recherche JSON sur des documents dans le stockage d'objets
Table de référence d'index de recherche JSON
Une table locale est créée dans votre 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 INDEX_NAME, la valeur VNCLOGS crée la table de référence de l'index de recherche JSON VNCLOGS$TXTIDX.
-
object_name: Nom du fichier dans le stockage d'objets qui contient la chaîne de texte recherchée. -
object_path: Il s'agit de l'URI du seau ou du dossier de stockage d'objets qui contient le fichier de stockage d'objets. -
length: Longueur du document JSON. -
offset: Décalage d'octets du début du fichier. -
mtime: Est l'horodatage de la dernière modification du fichier de stockage d'objets. Il s'agit de la dernière fois oùDBMS_CLOUDa accédé au fichier.
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 interrogation fournit des informations internes sur l'emplacement des documents pertinents dans vos fichiers du service de stockage d'objets. L'interrogation ne fournit pas les documents réels.
Pour extraire directement les documents, utilisez l'interrogation 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 : Utiliser la recherche JSON sur des documents dans le stockage d'objets
Vue de 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 dans le stockage d'objets qui contient la chaîne de texte recherchée. |
OBJECT_PATH |
URI du seau ou du dossier de stockage d'objets qui contient le fichier de stockage d'objets. |
LENGTH |
Longueur du document JSON. |
OFFSET |
Décalage d'octets du début du fichier. |
DATA |
Contenu du fichier de stockage d'objets. |
FILE_LINE_JSON |
Colonne sur laquelle |
MTIME |
Horodatage de la dernière modification du fichier de stockage d'objets. Il s'agit de la dernière fois où |
Rubrique parent : Utiliser la recherche JSON sur des documents dans le stockage d'objets
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 le stockage d'objets.
Le tableau contient une 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 spécifier à l'aide de l'option json_index_doc_len format est 200000 octets. Pour plus d'informations, voir Créer 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 dans le stockage d'objets qui contient la chaîne de texte recherchée. |
OBJECT_PATH |
URI du seau ou du dossier de stockage d'objets qui contient le fichier de stockage d'objets. |
OFFSET |
Décalage d'octet du début de la ligne. |
LENGTH |
Longueur du document JSON. |
LINE_NUMBER |
Numéro de ligne dans le fichier du magasin d'objets. |
Rubrique parent : Utiliser la recherche JSON sur des documents dans le stockage d'objets