Uso de la búsqueda de texto completo en archivos de Object Storage
El paquete PL/SQL DBMS_CLOUD permite crear un índice de texto en los archivos del almacén de objetos, lo que permite buscar el texto y utilizar comodines con la búsqueda.
- Acerca de la búsqueda de texto completo en archivos de Object Storage
Puede crear un índice de texto en archivos de Object Storage. Un índice de texto permite realizar una búsqueda basada en palabras en juegos de datos muy grandes en el almacén de objetos. - Creación de un índice de texto en archivos de almacenamiento de objetos
UtiliceDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
para crear un índice de texto en archivos de almacenamiento de objetos. - Borrar un índice en los archivos de almacenamiento en la nube
Utilice el procedimientoDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
para borrar un índice de texto en los archivos de almacenamiento de objetos. - Tabla de referencia de índice de texto
En la base de datos se crea una tabla local con el sufijo estándarINDEX_NAME$TXTIDX
. Esta tabla se crea internamente al ejecutarDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
. - Supervisión de la creación de índices de texto
Al ejecutarDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, la operación de creación de índices de texto se registra en la vistaALL_SCHEDULER_JOB_RUN_DETAILS
.
Tema principal: Consultas de búsqueda de texto completo
Acerca de la búsqueda de texto completo en archivos de Object Storage
DBMS_CLOUD
proporciona formas rápidas y eficientes de gestionar datos en el almacén de objetos. Las API DBMS_CLOUD
le permiten crear, copiar, descargar, suprimir y recorrer archivos presentes en el almacén de objetos. Cuando se definen tablas externas, se pueden ejecutar consultas SQL sobre los datos almacenados en el almacén de objetos (o con tablas externas particionadas híbridas, en los datos de la base de datos y en el almacén de objetos). Cuando se utiliza DBMS_CLOUD
para definir un índice de texto, esto permite buscar texto en los datos y utilizar comodines.
El soporte de Autonomous Database para la búsqueda basada en palabras funciona para formatos de datos de uso común, por ejemplo CSV o JSON y con documentos con formato (binario), por ejemplo, formatos PDF y DOC (MS Word). Puede configurar un ratio de refrescamiento que indique la frecuencia en minutos con la que se refresca el índice para las nuevas cargas o supresiones.
Se crea una tabla local con el sufijo estándar INDEX_NAME$TXTIDX
al crear un índice en el almacenamiento de objetos y puede utilizar la tabla para realizar una búsqueda mediante la palabra clave CONTAINS
.
Consulte Indexación con Oracle Text para obtener más información.
Creación de un índice de texto en archivos de Object Storage
Utilice DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
para crear un índice de texto en los archivos de Object Storage.
Los documentos con formato (binario) están soportados cuando se especifica la opción binary_files
format
con DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Puede incluir una lista de palabras de parada al especificar la opción stop_words
format
con DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Consulte Indexación con Oracle Text para obtener más información sobre las palabras irrelevantes de Oracle Text y el trabajo con archivos binarios.
Borrado de un índice en los archivos de almacenamiento en la nube
Utilice el procedimiento DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
para borrar un índice de texto en los archivos de almacenamiento de objetos.
Ejecute el procedimiento DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
para borrar un índice de texto en los archivos del almacenamiento de objetos.
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
En este ejemplo se borra el índice de texto EMP
.
Consulte DROP_EXTERNAL_TEXT_INDEX Procedure para obtener más información.
Tabla de referencia de índice de texto
Se crea una tabla local en la base de datos con un sufijo estándar INDEX_NAME$TXTIDX
. Esta tabla se crea internamente al ejecutar DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Puede consultar la tabla INDEX_NAME$TXTIDX
para buscar una cadena mediante la palabra clave CONTAINS
. Por ejemplo, al llamar al procedimiento DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
al valor INDEX_NAME
como EMP
, se crea la tabla de referencia de texto EMP$TXTIDX
.
-
object_name
: es el nombre de archivo del almacenamiento de objetos que contiene la cadena de texto buscada. -
object_path
: es el URI de carpeta o cubo de almacenamiento de objetos que contiene el archivo de almacenamiento de objetos. -
mtime
: es el último registro de hora modificado del archivo de almacenamiento de objetos. Esta es la hora de la última vez queDBMS_CLOUD
accedió al archivo.
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
Esta consulta devuelve los nombres de archivo y el URI de ubicación en el almacenamiento de objetos que contiene la cadena de texto king
, en mayúsculas o minúsculas.
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
Esta consulta devuelve el nombre del archivo y el registro de hora de la última modificación de los archivos de objeto en los que se crea el índice EMP
.
Creación de índices de texto de supervisión
Al ejecutar DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, la operación de creación de índice de texto se registra en la vista ALL_SCHEDULER_JOB_RUN_DETAILS
.
Puede consultar la vista ALL_SCHEDULER_JOB_RUN_DETAILS
para obtener el estado y cualquier error informado por el trabajo de creación de índice.
El nombre del trabajo DBMS_SCHEDULER
se deriva del parámetro INDEX_NAME
especificado al llamar a DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Para consultar la vista ALL_SCHEDULER_JOB_RUN_DETAILS
, debe estar conectado como usuario ADMIN
o tener el privilegio READ
en la vista ALL_SCHEDULER_JOB_RUN_DETAILS
.
Por ejemplo, la siguiente sentencia SELECT
con una cláusula WHERE
en job_name
muestra los detalles de ejecución del trabajo:
SELECT status, additional_info
FROM all_scheduler_job_run_details WHERE LOWER(job_name) = LOWER('index_name$JOB');
También puede consultar la existencia de un trabajo del programador de creación de índices.
SELECT status
FROM all_scheduler_jobs where LOWER(job_name) = LOWER('index_name$JOB');
Consulte CREATE_EXTERNAL_TEXT_INDEX Procedure para obtener más información.