Utiliser la recherche de texte intégral sur les fichiers dans Object Storage
Le package PL/SQL DBMS_CLOUD vous permet de créer un index de texte sur les fichiers de la banque d'objets, ce qui vous permet d'effectuer des recherches dans le texte et d'utiliser des caractères génériques lors de la recherche.
- A propos de la recherche de texte intégral dans les fichiers dans Object Storage
Vous pouvez créer un index de texte sur les 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 dans les fichiers de stockage cloud
Utilisez la procédureDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de texte dans 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, copier, télécharger, supprimer et parcourir des 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 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'objet. Vous pouvez utiliser la table 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 sur 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'objet.
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 spécifiez l'option stop_words
format
avec DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Pour plus d'informations sur les mots vides 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 de stockage d'objet.
Exécutez la procédure DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
pour supprimer un index de texte sur des fichiers dans le stockage d'objets.
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 à DROP_EXTERNAL_TEXT_INDEX Procédure.
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
en tant que EMP
, la valeur INDEX_NAME
crée la table de référence de texte EMP$TXTIDX
.
-
object_name
: nom de fichier sur le stockage d'objet qui contient la chaîne de texte recherchée. -
object_path
: est l'URI de dossier ou de bucket de stockage d'objet qui contient le fichier de stockage d'objet. -
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 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'objet 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 de 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é 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.