Utiliser la recherche de texte intégral sur des fichiers dans Object Storage
Le package PL/SQL DBMS_CLOUD vous permet de créer un index de texte sur les fichiers de banque d'objets, ce qui vous permet de rechercher le texte et d'utiliser des caractères génériques avec votre recherche.
- A propos de la recherche de texte intégral sur des fichiers dans Object Storage
Vous pouvez créer un index de texte sur des fichiers dans Object Storage. Un index de texte vous permet d'effectuer une recherche basée sur des mots sur des ensembles de données très volumineux dans la banque d'objets. - Création d'un index de texte sur des fichiers Object Storage
UtilisezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index de texte sur des fichiers dans Object Storage. - Suppression d'un index sur les fichiers de stockage cloud
Utilisez la procédureDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de texte sur les fichiers de stockage d'objet. - Table de référence d'index de texte
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
. - Surveillance de la création d'index de texte
Lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'opération de création d'index de texte est journalisée dans la vueALL_SCHEDULER_JOB_RUN_DETAILS
.
Rubrique parent : Requêtes de recherche en texte intégral
A propos de la recherche de texte intégral sur des fichiers dans Object Storage
DBMS_CLOUD
fournit des moyens rapides et efficaces de gérer les données dans la banque d'objets. Les API DBMS_CLOUD
vous permettent de créer, de copier, de télécharger, de supprimer et de parcourir les fichiers présents dans la banque d'objets. Lorsque vous définissez des tables externes, vous pouvez exécuter des requêtes SQL sur les données stockées dans votre banque d'objets (ou avec des tables externes partitionnées hybrides, entre les données de votre base de données et de la banque d'objets). Lorsque vous utilisez DBMS_CLOUD
pour définir un index de texte, cela vous permet de rechercher du texte dans vos données et d'utiliser des caractères génériques.
La prise en charge d'Autonomous Database pour la recherche basée sur des mots fonctionne pour les formats de données couramment utilisés, par exemple CSV ou JSON et avec des documents formatés (binaires), par exemple les formats PDF et DOC (MS Word). 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.
Une table locale avec le suffixe standard INDEX_NAME$TXTIDX
est créée lorsque vous créez un index sur le stockage d'objets. Vous pouvez l'utiliser pour effectuer une recherche à l'aide du mot-clé CONTAINS
.
Pour plus d'informations, reportez-vous à Indexation avec Oracle Text.
Création d'un index de texte dans des fichiers Object Storage
Utilisez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
pour créer un index de texte sur les fichiers dans le stockage d'objets.
Les documents formatés (binaires) sont pris en charge lorsque vous spécifiez l'option binary_files
format
avec DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Vous pouvez inclure une liste de mots vides lorsque vous indiquez l'option stop_words
format
avec DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Pour plus d'informations sur les mots d'arrêt Oracle Text et l'utilisation de fichiers binaires, reportez-vous à Indexation avec Oracle Text.
Suppression d'un index sur les fichiers de stockage cloud
Utilisez la procédure DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de texte sur des fichiers Object Storage.
Exécutez la procédure DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de texte sur des fichiers dans Object Storage.
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
Cet exemple supprime l'index de texte EMP
.
Pour plus d'informations, reportez-vous à Procédure DROP_EXTERNAL_TEXT_INDEX.
Table de référence d'index de texte
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é CONTAINS
. Par exemple, lorsque vous appelez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, la valeur INDEX_NAME
est EMP
, cela crée la table de référence de texte EMP$TXTIDX
.
-
object_name
: nom du fichier sur le stockage d'objets qui contient la chaîne de texte recherchée. -
object_path
est l'URI du dossier ou du bucket de stockage d'objet qui contient le fichier de stockage d'objet. -
mtime
: dernier horodatage modifié du fichier de stockage d'objet. Il s'agit du dernier accès au fichier parDBMS_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
Cette requête renvoie les noms de fichier et l'URI d'emplacement sur le stockage d'objets qui contient la chaîne de texte king
, en majuscules ou en minuscules.
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
Cette requête renvoie le nom du fichier et l'horodatage de la dernière modification des fichiers d'objet sur lesquels l'index EMP
est créé.
Surveiller la création d'index de texte
Lorsque vous exécutez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, l'opération de création d'index de texte 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.