Utiliser la recherche en texte intégral sur les fichiers du stockage d'objets
L'ensemble PL/SQL DBMS_CLOUD vous permet de créer un index de texte sur les fichiers du magasin d'objets, ce qui vous permet de rechercher du texte et d'utiliser des caractères génériques avec votre recherche.
- À propos de la recherche en texte intégral sur les fichiers du stockage d'objets
Vous pouvez créer un index de texte sur les fichiers du stockage d'objets. Un index de texte vous permet d'effectuer une recherche par mot sur des jeux de données très volumineux dans le magasin d'objets. - Créer un index de texte sur les fichiers de stockage d'objets
UtilisezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEXpour créer un index de texte sur les fichiers du stockage d'objets. - Supprimer un index sur les fichiers de stockage en nuage
Utilisez la procédureDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEXpour supprimer un index de texte sur les fichiers de stockage d'objets. - Table de référence d'index de texte
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. - Surveiller la création de l'index texte
Lorsque vous exécutezDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX, l'opération de création de l'index texte est enregistrée dans la vueALL_SCHEDULER_JOB_RUN_DETAILS.
Rubrique parent : Interrogations de recherche en texte intégral
À propos de la recherche en texte intégral sur les fichiers du stockage d'objets
DBMS_CLOUD fournit des moyens rapides et efficaces de gérer les données dans le magasin d'objets. Les API DBMS_CLOUD vous permettent de créer, copier, télécharger, supprimer et parcourir les fichiers présents dans le magasin d'objets. Lorsque vous définissez des tables externes, vous pouvez exécuter des interrogations SQL sur les données stockées dans votre magasin d'objets (ou avec des tables externes partitionnées hybrides, entre les données de votre base de données et dans le magasin 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 de la base de données d'IA autonome pour la recherche par mot 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 un taux d'actualisation qui indique la fréquence en minutes à laquelle l'index est actualisé pour les nouveaux 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 et vous pouvez utiliser la table pour effectuer une recherche à l'aide du mot clé CONTAINS.
Pour plus d'informations, voir Indexation avec Oracle Text.
Créer un index de texte dans les fichiers de stockage d'objets
Utilisez DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX pour créer un index de texte sur les fichiers du 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 spécifiez l'option stop_words format avec DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX.
Voir Indexation avec Oracle Text pour plus d'informations sur les mots d'arrêt Oracle Text et l'utilisation des fichiers binaires.
Supprimer un index sur les fichiers de stockage en nuage
Utilisez la procédure DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX pour supprimer un index de texte dans les fichiers de stockage d'objets.
Exécutez la procédure DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX pour supprimer un index de texte sur les fichiers du 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, voir ProcédureDROP_EXTERNAL_TEXT_INDEX.
Table de référence d'index de texte
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é CONTAINS. Par exemple, lorsque vous appelez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX en tant que INDEX_NAME, la valeur EMP crée la table de référence de texte EMP$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 du seau de stockage d'objets ou de l'URI du dossier qui contient le fichier de stockage d'objets. -
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 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.jsonCette interrogation retourne 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:00Cette interrogation retourne 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 texte 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.